JDBC底子教程之驱动设置[Java编程]
本文“JDBC底子教程之驱动设置[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1、概述
DriverManager 类是 JDBC 的管理层,作用于用户和驱动程序之间.它跟踪可用的驱动程序,并在数据库和呼应驱动程序之间成立衔接.别的,DriverManager 类也处理诸如驱动程序登录时间限制及登录和跟踪消息的显示等事件.
关于简单的利用程序,普通程序员需求在此类中直接利用的唯一办法是 DriverManager.getConnection.正如名称所示,该办法将成立与数据库的衔接.JDBC 答应用户调用 DriverManager 的办法 getDriver、getDrivers 和 registerDriver 及 Driver 的办法 connect.但大都情形下,让 DriverManager 类管理成立衔接的细节为上策.
1、跟踪可用驱动程序
DriverManager 类包含一列 Driver 类,它们已通过调用办法 DriverManager.registerDriver 对自己举行了注册.全部 Driver 类都必须包含有一个静态部份.它成立该类的实例,然后在加载该实例时 DriverManager 类举行注册.这样,用户正常情形下将不会直接调用 DriverManager.registerDriver;而是在加载驱动程序时由驱动程序自动调用.加载 Driver 类,然后自动在 DriverManager 中注册的方法有两种:
通过调用办法 Class.forName.这将显式地加载驱动程序类.由于这与外部设置无关,因此举荐利用这种加载驱动程序的办法.以下代码加载类 acme.db.Driver:
Class.forName("acme.db.Driver");
假如将 acme.db.Driver 编写为加载时成立实例,并调用以该实例为参数的 DriverManager.registerDriver(本该如此),则它在 DriverManager 的驱动程序列表中,并可用于成立衔接.
通过将驱动程序增添到 java.lang.System 的属性 jdbc.drivers 中.这是一个由 DriverManager 类加载的驱动程序类名的列表,由冒号脱离:初始化 DriverManager 类时,它搜索系统属性 jdbc.drivers,假如用户已输入了一个或多个驱动程序,则 DriverManager 类将试图加载它们.以下代码阐明程序员如安在 ~/.hotjava/properties 中输入三个驱动程序类(启动时,HotJava 将把它加载到系统属性列表中):
jdbc.drivers=foo.bah.Driver:wombat.sql.Driver:bad.test.ourDriver;
对 DriverManager 办法的第一次调用将自动加载这些驱动程序类.
注意:加载驱动程序的第二种办法需求长期的预设环境.假如对这一点不能保证,则调用办法 Class.forName 显式地加载每个驱动程序就显得更为安全.这也是引入特定驱动程序的办法,因为一旦 DriverManager 类被初始化,它将不再查抄 jdbc.drivers 属性列表.
在以上两种情形中,新加载的 Driver 类都要通过调用 DriverManager.registerDriver 类举行自我注册.如上所述,加载类时将自动履行这一历程.
由于安全方面的缘由,JDBC 管理层将跟踪哪个类加载器供应哪个驱动程序.这样,当 DriverManager 类翻开衔接时,它仅利用本地文件系统或与发出衔接恳求的代码相同的类加载器供应的驱动程序.
2、成立衔接
加载 Driver 类并在 DriverManager 类中注册后,它们便可用来与数据库成立衔接.当调用 DriverManager.getConnection 办法发出衔接恳求时,DriverManager 将查抄每个驱动程序,查看它能否可以成立衔接.
有时大概有多个 JDBC 驱动程序可以与给定的 URL 衔接.比方,与给定远程数据库衔接时,可以利用 JDBC-ODBC 桥驱动程序、JDBC 到通用网络协议驱动程序或数据库厂商供应的驱动程序.在这种情形下,测试驱动程序的次序至关重要,因为 DriverManager 将利用它所找到的第一个可以成功衔接到给定 URL 的驱动程序.
首先 DriverManager 试图按注册的次序利用每个驱动程序(jdbc.drivers 中列出的驱动程序老是先注册).它将跳过代码不可托任的驱动程序,除非加载它们的源与试图翻开衔接的代码的源相同.
它通过轮番在每个驱动程序上调用办法 Driver.connect,并向它们传送用户开始传送给办法 DriverManager.getConnection 的 URL 来对驱动程序举行测试,然后衔接第一个认出该 URL 的驱动程序.
这种办法初看起来效率不高,但由于不大概同时加载数十个驱动程序,因此每次衔接实际只需几个历程调用和字符串对比.
以下代码是普通情形下用驱动程序(比方 JDBC-ODBC 桥驱动程序)成立衔接所需全部步骤的示例:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载驱动程序
String url = "jdbc:odbc:fred";
DriverManager.getConnection(url, "userID", "passwd");
以上是“JDBC底子教程之驱动设置[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |