JDBCTM入门知识2:连接一
浏览:1802 类型:程序语言 发布人:WzW 发布日期:2009/6/4 22:16:11
JDBCTM入门知识2:连接
本概述是从《JDBCTM Database Access from JavaTM: A Tutorial
and Annotated Reference 》这本书中摘引来的。JavaSoft 目前正在准备这本书。这本书是一本教程,同时也是 JDBC 的重要参考手册,它将作为 Java 系列的组成部份在 1997 年春季由 Addison-Wesley 出版公司出版。
2.1 概述
Connection 对象代表与数据库的连接。连接过程包括所执行的 SQL 语句和在该连接上所返回的结果。一个应用程序可与单个数据库有一个或多个连接,或者可与许多数据库有连接。
2.1.1 打开连接与数据库建立连接的标准方法是调用 DriverManager.getConnection
方法。该方法接受含有某个 URL 的字符串。DriverManager 类(即所谓的 JDBC 管理层)将尝试找到可与那个 URL 所代表的数据库进行连接的驱动程序。DriverManager 类存有已注册的 Driver 类的清单。当调用方法 getConnection 时,它将检查清单中的每个驱动程序,直到找到可与 URL 中指定的数据库进行连接的驱动程序为止。Driver 的方法 connect 使用这个 URL 来建立实际的连接。
用户可绕过 JDBC 管理层直接调用 Driver 方法。这在以下特殊情况下将很有用:当两个驱动器可同时连接到数据库中,而用户需要明确地选用其中特定的驱动器。但一般情况下,让 DriverManager 类处理打开连接这种事将更为简单。
下述代码显示如何打开一个与位于 URL "jdbc:odbc:wombat" 的数据库的连接。所用的用户标识符为 "oboy" ,口令为 "12Java":
String url = "jdbc:odbc:wombat";
Connection con = DriverManager.getConnection(url, "oboy", "12Java");
2.1.2 一般用法的 URL由于 URL 常引起混淆,我们将先对一般 URL 作简单说明,然后再讨论 JDBC URL。
URL(统一资源定位符)提供在 Internet 上定位资源所需的信息。可将它想象为一个地址。
URL 的第一部份指定了访问信息所用的协议,后面总是跟着冒号。常用的协议有 "ftp"(代表“文件传输协议”)和 "http" (代表“超文本传输协议”)。
如果协议是 "file",表示资源是在某个本地文件系统上而非在 Internet 上(下例用于表示我们所描述的部分;它并非 URL 的组成部分)。
ftp://javasoft.com/docs/JDK-1_apidocs.zip
http://java.sun.com/products/jdk/CurrentRelease
file:/home/haroldw/docs/books/tutorial/summary.html
URL 的其余部份(冒号后面的)给出了数据资源所处位置的有关信息。如果协议是 file,则 URL 的其余部份是文件的路径。对于 ftp 和 http 协议,URL 的其余部份标识了主机并可选地给出某个更详尽的地址路径。例如,以下是 JavaSoft 主页的 URL。该 URL 只标识了主机:
http://java.sun.com从该主页开始浏览,就可以进到许多其它的网页中,其中之一就是
JDBC 主页。JDBC 主页的 URL 更为具体,它看起来类似: http://java.sun.com/products/jdbc
2.1.3 JDBC URL JDBC URL 提供了一种标识数据库的方法,可以使相应的驱动程序能识别该数据库并与之建立连接。实际上,驱动程序编程员将决定用什么 JDBC URL 来标识特定的驱动程序。用户不必关心如何来形成 JDBC URL;他们只须使用与所用的驱动程序一起提供的 URL 即可。JDBC 的作用是提供某些约定,驱动程序编程员在构造他们的 JDBC URL 时应该遵循这些约定。
由于 JDBC URL 要与各种不同的驱动程序一起使用,因此这些约定应非常灵活。首先,它们应允许不同的驱动程序使用不同的方案来命名数据库。例如, odbc 子协议允许(但并不是要求) URL 含有属性值。第二,JDBC URL 应允许驱动程序编程员将一切所需的信息编入其中。这样就可以让要与给定数据库对话的 applet 打开数据库连接,而无须要求用户去做任何系统管理工作。
第三, JDBC URL 应允许某种程度的间接性。也就是说,JDBC URL 可指向逻辑主机或数据库名,而这种逻辑主机或数据库名将由网络命名系统动态地转换为实际的名称。这可以使系统管理员不必将特定主机声明为 JDBC 名称的一部份。网络命名服务(例如 DNS、 NIS 和 DCE )有多种,而对于使用哪种命名服务并无限制。JDBC URL 的标准语法如下所示。它由三部分组成,各部分间用冒号分隔:
jdbc:< 子协议 >:< 子名称 >JDBC URL 的三个部分可分解如下: jdbc ─ 协议。JDBC URL 中的协议总是 jdbc。
<子协议> ─ 驱动程序名或数据库连接机制(这种机制可由一个或多个驱动程序支持)的名称。子协议名的典型示例是 "odbc",该名称是为用于指定 ODBC 风格的数据资源名称的 URL 专门保留的。例如,为了通过 JDBC-ODBC 桥来访问某个数据库,可以用如下所示的 URL:
jdbc:odbc:fred本例中,子协议为 "odbc",子名称 "fred" 是本地ODBC 数据资源。
如果要用网络命名服务(这样 JDBC URL 中的数据库名称不必是实际名称),则命名服务可以作为子协议。例如,可用如下所示的 URL :
jdbc:dcenaming:accounts-payable本例中,该 URL 指定了本地 DCE 命名服务应该将
数据库名称 "accounts-payable" 解析为更为具体的可用于连接真实数据库的名称。<子名称> ─ 一种标识数据库的方法。子名称可以依不同的子协议而
变化。它还可以有子名称的子名称(含有驱动程序编程员所选的任何内部语法)。使用子名称的目的是为定位数据库提供足够的信息。前
例中,因为 ODBC 将提供其余部份的信息,因此用 "fred" 就已足够。然而,位于远程服务器上的数据库需要更多的信息。例如,如果数据库是通过 Internet 来访问的,则在 JDBC URL 中应将网络地址作为子名称的一部份包括进去,且必须遵循如下所示的标准 URL 命名约定:
//主机名:端口/子协议假设 "dbnet" 是个用于将某个主机连接到 Internet 上的协议,则 JDBC URL 类似:
jdbc:dbnet://wombat:356/fred 2.1.4 "odbc" 子协议
子协议 odbc 是一种特殊情况。它是为用于指定 ODBC 风格的数据资源名称的 URL 而保留的,并具有下列特性:允许在子名称(数据资源名称)后面指定任意多个属性值。odbc 子协议的完整语法为: jdbc:odbc:< 数据资源名称 >[;< 属性名 >=< 属性值 >]*因此,以下都是合法的 jdbc:odbc 名称: jdbc:odbc:qeor7jdbc:odbc:wombat
上一篇:JDBCTM知识1:JDBCTM基本简介三 下一篇:JDBCTM入门知识2:连接二
其它相关文章
您没有ASPEncodeDLL.AspCoding 对象的操作权限或该对象不存在,请联系服务器管理员 解决方法
sql server “不允许保存更改,您所做的更改要求删除并重新创建以下表”错误的解决办法
WIN2003 IIS6 Request 对象 错误 'ASP 0104 : 80004005' 不允许操作|IIS6取消限制上传超200KB文件方法