Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.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
Java JDBC使用URL进行连接_Java_Jdbc - Fatal编程技术网

Java JDBC使用URL进行连接

Java JDBC使用URL进行连接,java,jdbc,Java,Jdbc,在jdbc属性中设置URL时,如: jdbc:derby://localhost:1527/vehicle;create=true 这是否意味着所有数据都是通过特定端口上的HTTP发送的?(看起来很明显)它与HTTP无关,不。使用的协议是特定于数据库和JDBC驱动程序的,就像JDBC URL格式一样。所有JDBC URL的唯一共同点是JDBC:前缀 在这个特定的例子中,我想说您有一个ApacheDerbyJDBCURL,连接到本地主机端口1527上的服务器,数据库(或者可能是用户名“vehic

在jdbc属性中设置URL时,如:

jdbc:derby://localhost:1527/vehicle;create=true

这是否意味着所有数据都是通过特定端口上的HTTP发送的?(看起来很明显)

它与HTTP无关,不。使用的协议是特定于数据库和JDBC驱动程序的,就像JDBC URL格式一样。所有JDBC URL的唯一共同点是
JDBC:
前缀

在这个特定的例子中,我想说您有一个ApacheDerbyJDBCURL,连接到本地主机端口1527上的服务器,数据库(或者可能是用户名“vehicle”,必要时创建它

另一个例子是Oracle JDBC URL格式:

jdbc:oracle:<drivertype>:<username/password>@<database>
jdbc:oracle:
@

与Derby one非常不同,但指定了相同类型的信息。

简短的回答是“否”。要理解为什么需要理解URL的语法,请使用。URI的基本语法是

<url> ::= <scheme>:<scheme-specific-part>
尽管web浏览器也了解其他方案,如“ftp”、“mailto”等

但正如您所看到的,JDBCURL使用“JDBC”方案;比如说

jdbc:derby://localhost:1527/vehicle;create=true
在某些情况下(例如“http”和“ftp”),方案具有相应的应用程序协议(例如分别为http或ftp),可用于访问内容。(这假设URL实际解析为可获取的内容)

在其他情况下,包括“jdbc”方案,URL不表示内容,甚至不一定指定协议。在JDBC的例子中,URL实际上是指定用于访问数据库的端点位置(以及其他详细信息)。第二个冒号后面的内容是特定于JDBC驱动程序/RDBMS的,无论是在语法上还是在其含义上。但涉及HTTP或web浏览器不太可能知道如何处理JDBC URL。

引用的章节(这是一个旧版本,但我发现它比关于JDBC URL的较新版本更清楚):

6.3网址 6.3.1 JDBC数据库命名的目标 我们需要提供一种命名方式 数据库,以便应用程序编写器 可以指定所需的数据库 连接到

我们想要这个JDBC命名 具有以下功能的机制 特性:

  • 不同的驱动程序可以使用不同的数据库命名方案。对于 例如,JDBC-ODBC网桥驱动程序可能 支持简单的ODBC样式的数据源 名称,而不是网络协议 驾驶员可能需要了解其他信息 信息,以便它能够发现 要连接到的主机名和端口
  • 如果用户下载了一个想要与给定数据库对话的小程序,那么 我们希望能够开一家 数据库连接,无需 用户可以在任何系统中进行操作 行政杂务。因此 例如,我们希望避免要求 人体给药的类似物 客户端上的ODBC数据源表 机器。这意味着它应该 可以对任何必要的代码进行编码 JDBC中的连接信息 名字
  • 我们希望在JDBC名称中允许一定程度的间接寻址,以便 可通过以下方式解析初始名称: 一些网络命名系统,以便 找到数据库。这将允许 要避免的系统管理员 将特定主机指定为 JDBC名称。但是,既然有, 有许多不同的网络名称 我们提供的服务(如NIS、DCE等) 我不想授权任何 使用特定的网络名称服务器
6.3.2 URL语法 幸运的是,万维网已经成功了 已经在命名上标准化了 支持所有这些功能的系统 财产。这是制服 资源定位器(URL)机制。所以 我们建议为JDBC使用URL 命名,并仅推荐一些 构造JDBCURL的约定

我们建议使用JDBC URL的 结构如下:

jdbc:<subprotocol>:<subname>
jdbc::
其中,子策略命名特定的 一种数据库连接 可能由一个 或者更多的司机。内容及 子名称的语法将取决于 次级方案

如果您正在指定网络 地址作为子名称的一部分,我们 建议遵循标准URL 命名约定 服务器的“//主机名:端口/子SubName” 子名称。子SubName可以具有 任意的内部语法

总结如下:

  • JDBCURL和HTTP URL之间唯一的共同点是都使用相同的标准化命名系统(URL)机制(这只是对JDBC1的建议)

  • JDBC URL特定于JDBC驱动程序(同一数据库的不同驱动程序将使用不同的方案)。有关详细信息,请参阅JDBC驱动程序的文档(例如,在使用Derby网络服务器时,请查看)

  • 不,JDBC客户机用来与数据库服务器通信的协议不是HTTP(它是一种特定于数据库的协议)


1实际上,一个JDBC URL可能不是一个真正的URI,正如本全新版本的注释中所述:

注意-不要求JDBC URL完全遵守中定义的URI语法 RFC3986,统一资源标识符(URI):通用语法

jdbc:<subprotocol>:<subname>