Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javaee中appserver与DB服务器的通信_Java_Database_Jakarta Ee - Fatal编程技术网

javaee中appserver与DB服务器的通信

javaee中appserver与DB服务器的通信,java,database,jakarta-ee,Java,Database,Jakarta Ee,如果应用服务器和数据库服务器都托管在不同的机器上,那么JavaEE中它们之间的通信使用什么协议 我的意思是,如果我使用JDBC,那么我可以在配置文件(连接字符串)中指定DB服务器的IP吗 连接会建立起来吗 如果它确实建立了,那么使用什么协议在两台服务器之间进行通信? 此协议是否依赖于数据库 或者我应该在DB服务器上使用web服务与应用服务器通信吗?与DB通信的协议取决于数据库。JDBC驱动程序负责为您与DB进行通信 数据库的URL也依赖于数据库,并且包含驱动程序连接到数据库服务器所需的信息 在D

如果应用服务器和数据库服务器都托管在不同的机器上,那么JavaEE中它们之间的通信使用什么协议

我的意思是,如果我使用JDBC,那么我可以在配置文件(连接字符串)中指定DB服务器的IP吗 连接会建立起来吗

如果它确实建立了,那么使用什么协议在两台服务器之间进行通信? 此协议是否依赖于数据库


或者我应该在DB服务器上使用web服务与应用服务器通信吗?

与DB通信的协议取决于数据库。JDBC驱动程序负责为您与DB进行通信

数据库的URL也依赖于数据库,并且包含驱动程序连接到数据库服务器所需的信息

在DB服务器上使用web服务肯定是个坏主意:

  • 它将禁止在JavaEE应用程序中使用事务
  • 如果不将结果全部加载到内存中,您将无法滚动到结果
  • 这将是可怕的缓慢
  • DB服务器上的web服务仍将使用与数据库服务器相同的本机协议进行通信

阅读以了解更多信息。

通常连接是在JDBC驱动程序中实现的。驱动程序允许使用某些特定的DB服务器。有专有驱动程序(比如Oracle)或开源驱动程序

指定什么通常取决于您使用的数据库及其配置方式。 你说“仅仅是IP”,那么用户/密码、模式(如果存在)、端口等呢。我相信谷歌最好能找到这些东西:)

对于协议,通常在驱动程序中重新实现其自定义协议。从应用程序开发人员的角度来看,只要驱动程序实现了特定版本的JDBC,就可以了

关于Web服务,我不明白为什么要使用它们


希望,这有助于

在DB服务器上没有web服务的好理由…您能否详细说明“如果不将结果全部加载到内存中,您将无法滚动到结果”?因为web服务必须向Java应用程序返回完整的列表,RDB通常可以自由地实现自己的协议,而不是Java应用程序直接遍历JDBC结果集。提供给JDBC驱动程序以建立连接的连接URL就是一个例子。例如,对于HSQLDB,URL是:“jdbc:HSQLDB:hsql://host[:端口][/][]。此处所示的协议是专有的“hsql”协议。正如JB所指出的,幸运的是JDBC驱动程序为您处理通信。