当前页面位置: » 丰搜网 » 文档中心 » 详细内容
jdbc基础教程之连接
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(统一资源定位符)提供在 inte
.net 上定位资源所需的信息。可将它想象为一个地址。url 的第一部份指定了访问信息所用的协议,后面总是跟着冒号。常用的协议有"ftp"(代表“文件传输协议”)和 "http" (代表“超文本传输协议”)。如果协议是 "file",表示资源是在某个本地文件系统上而非在 inte
.net 上(下例用于表示我们所描述的部分;它并非 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:
本例中,子协议为 "odbc",子名称 "fred" 是本地odbc 数据资源。
如果要用网络命名服务(这样 jdbc url 中的
数据库名称不必是实际名称),则命名服务可以作为子协议。例如,可用如下所示的 url :jdbc:dcenaming:accounts-payable本例中,该 url 指定了本地 dce 命名服务应该将
数据库名称 "accounts-payable" 解析为更为具体的可用于连接真实
数据库的名称。<子名称> ─ 一种标识
数据库的方法。子名称可以依不同的子协议而变化。它还可以有子名称的子名称(含有驱动程序编程员所选的任何内部语法)。使用子名称的目的是为定位
数据库提供足够的信息。前例中,因为 odbc 将提供其余部份的信息,因此用 "fred" 就已足够。然而,位于远程
服务器上的
数据库需要更多的信息。例如,如果
数据库是通过inte
.net 来访问的,则在 jdbc url 中应将网络地址作为子名称的一部份包括进去,且必须遵循如下所示的标准 url 命名约定://主机名:端口/子协议假设 "d
.net" 是个用于将某个主机连接到 inte
.net 上的协议,则 jdbc url 类似:
jdbc:d
.net://wombat:356/fred 2.1.4 "odbc" 子协议子协议 odbc 是一种特殊情况。它是为用于指定 odbc 风格的数据资源名称的 url 而保留的,并具有下列特性:允许在子名称(数据资源名称)后面指定任意多个属性值。odbc 子协议的完整语法为: jdbc:odbc:< 数据资源名称 >[;< 属性名 >=< 属性值 >]*
因此,以下都是合法的 jdbc:odbc 名称:
jdbc:odbc:qeor7jdbc:odbc:wombat jdbc:odbc:wombat;cachesize=20;extensioncase=lower jdbc:odbc:qeora;uid=kgh;pwd=fooey |