4.3.1 通过Connection对象建立数据库连接
Connection对象代表与数据库的连接。连接过程包括所执行的SQL语句和在该连接上所返回的结果。一个应用程序可与单个数据库有一个或多个连接,或者可与许多数据库有连接。
图4-2 JDBC API结构关系图
1. JDBC连接URL
JDBC URL提供了一种标识数据库的方法,可以使相应的驱动程序能识别该数据库并与之建立连接。JDBC URL的标准语法如下所示。它由三部分组成,各部分间用冒号分隔:::
:JDBC URL中的协议总是jdbc。
:驱动程序名或数据库连接机制(这种机制可由一个或多个驱动程序支持)的名称。子协议名的典型示例是"odbc",该名称是为用于指定ODBC风格的数据资源名称的URL专门保留的。
:包含要连接数据库的名称、用户名、密码等信息。
例如:为了通过JDBC-ODBC 桥来访问某个数据库,可以用如下所示的 URL:jdbc:odbc:TEST
其中,子协议为"odbc",子名称"TEST"是本地ODBC 数据资源。
下例是MySQL的连接URL:jdbc:mysql://localhost/db?user=root&password=123&useUnicode=true&characterEncoding=utf-8
其中的子协议为"mysql",后面的字符串表示连接MySQL的相关信息。其中"localhost"表示MySQL的主机地址,"db"表示数据库名,user参数表示用户名,password表示密码,useUnicode表示连接的编码方式。
下例是Oracle的连接URL:jdbc:oracle:thin:@localhost:1521:orcl
其中,"oracle:thin"表示连接子协议,"localhost"表示Oracle的主机地址,"1521"表示连接端口,"orcl"表示连接的Oracle服务名。
下例是SQLServer的连接URL:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs
其中,"micorsoft:sqlserver"表示连接子协议,"localhost"表示SQLServer的主机地址,"1433"表示连接端口,"pubs"表示连接的数据库名。
2. 使用DriverManager管理驱动类
DriverManager类是JDBC的管理层,作用于用户和驱动程序之间。它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。一般需要直接使用的***方法是DriverManager.getConnection。正如名称所示,该方法将建立与数据库的连接。
在取得连接之前,需要注册驱动程序。通过调用方法Class.forName,这将显式地加载驱动程序类。以下代码分别加载连接ODBC、MySQL、Oracle、SQLServer的驱动类:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Class.forName("com.mysql.jdbc.Driver");
Class.forName("oracle.jdbc.driver.OracleDriver");
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
3. 取得Connection连接
我们可以通过驱动管理类DriverManager的下面的方法取得数据库连接对象:DriverManager.getConnection(url,username,password);
它包含三个参数,分别为连接的URL、数据库用户名和密码。如果不需要用户名和密码,可以忽略后两个参数。
当调用DriverManager.getConnection方法发出连接请求时,DriverManager将检查每个驱动程序,查看它是否可以建立连接。
有时可能有多个JDBC驱动程序可以与给定的URL连接。例如,与给定远程数据库连接时,可以使用JDBC-ODBC桥驱动程序、JDBC到通用网络协议驱动程序或数据库厂商提供的驱动程序。在这种情况下,测试驱动程序的顺序至关重要,因为DriverManager将使用它所找到的***个可以成功连接到给定URL的驱动程序。
它通过轮流在每个驱动程序上调用方法Driver.connect,并向它们传递用户开始传递给方法DriverManager.getConnection的URL来对驱动程序进行测试,然后连接***个认出该URL的驱动程序。
以下的代码是通常情况下用驱动程序(例如JDBC-ODBC桥驱动程序)建立连接所需的所有步骤的示例:Stringurl="jdbc:odbc:TEST"; //JDBC URL
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载驱动程序
Connectionconn=DriverManager.getConnection
(url, "userID", "passwd"); //取得连接
4. 连接管理
一旦取得一个数据库连接,就在物理上与数据库建立了一个通路,此时可以通过该连接对象来查看数据库信息、查询数据库数据、修改数据等。并在完成一些列操作后使用下面的函数关闭数据库连接:conn.close();
该对象还可以通过以下的方法进行事务管理:
设置不自动提交:conn.setAutoCommit(false);
提交数据:conn.commit();
回滚数据:conn.rollback();
设置自动提交:conn.setAutoCommit(true)。
并可以利用Connection对象的其他方法来取得各种其他的对象,请看下文。
【责任编辑:云霞 TEL:(010)68476606】
点赞 0