⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jdbctm 指南:入门3 - drivermanager.htm

📁 写给JSP初级程序员的书
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0056)http://eps.www85.cn4e.com/java/article/devshow.asp?id=97 -->
<HTML><HEAD><title>csdn_JDBCTM 指南:入门3 - DriverManager</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<STYLE type=text/css>TD {
	FONT-FAMILY: "Verdana", "Arial", "宋体"; FONT-SIZE: 9pt
}
A {
	COLOR: #660000; TEXT-DECORATION: underline
}
A:hover {
	COLOR: #660000; TEXT-DECORATION: none
}
.line {
	LINE-HEIGHT: 14pt
}
</STYLE>

<META content="Microsoft FrontPage 4.0" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff text=#000000>

  <table width="664"><tbody>
  <TR>
    <TD height=21 width="656">
      <DIV align=center><B><FONT size=3>JDBCTM 指南:入门3 -  
      DriverManager <BR><FONT size=2> </FONT></FONT> 
      <HR align=center color=#cccccc noShade SIZE=1> 
      </DIV></b></TD></TR> 
  <TR> 
    <TD class=line width="656"><FONT  
      color=#333300>3&nbsp;-&nbsp;DriverManager<BR>3.1&nbsp;概述<BR>DriverManager&nbsp;类是&nbsp;JDBC&nbsp;的管理层,作用于用户和驱动程序之间。<BR>它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。<BR>另外,DriverManager&nbsp;类也处理诸如驱动程序登录时间限制及登录和<BR>跟踪消息的显示等事务。<BR><BR>对于简单的应用程序,一般程序员需要在此类中直接使用的唯一方法<BR>是&nbsp;DriverManager.getConnection。正如名称所示,该方法将建立与<BR>数据库的连接。JDBC&nbsp;允许用户调用&nbsp;DriverManager&nbsp;的方法&nbsp;<BR>getDriver、getDrivers&nbsp;和&nbsp;registerDriver&nbsp;及&nbsp;Driver&nbsp;的方法&nbsp;<BR>connect。但多数情况下,让&nbsp;DriverManager&nbsp;类管理建立连接的细<BR>节为上策。<BR><BR><BR>3.1.1&nbsp;跟踪可用驱动程序<BR>DriverManager&nbsp;类包含一列&nbsp;Driver&nbsp;类,它们已通过调用方法&nbsp;<BR>DriverManager.registerDriver&nbsp;对自己进行了注册。所有&nbsp;Driver<BR>类都必须包含有一个静态部分。它创建该类的实例,然后在加载该<BR>实例时&nbsp;DriverManager&nbsp;类进行注册。这样,用户正常情况下将不会<BR>直接调用&nbsp;DriverManager.registerDriver;而是在加载驱动程序时<BR>由驱动程序自动调用。加载&nbsp;Driver&nbsp;类,然后自动在&nbsp;DriverManager<BR>中注册的方式有两种:&nbsp;<BR><BR><BR>通过调用方法&nbsp;Class.forName。这将显式地加载驱动程序类。由于这<BR>与外部设置无关,因此推荐使用这种加载驱动程序的方法。以下代码<BR>加载类&nbsp;acme.db.Driver:&nbsp;<BR>Class.forName("acme.db.Driver");<BR><BR>如果将&nbsp;acme.db.Driver&nbsp;编写为加载时创建实例,并调用以该实例为<BR>参数的&nbsp;DriverManager.registerDriver(本该如此),则它在&nbsp;<BR>DriverManager&nbsp;的驱动程序列表中,并可用于创建连接。<BR><BR><BR>通过将驱动程序添加到&nbsp;java.lang.System&nbsp;的属性&nbsp;jdbc.drivers&nbsp;中<BR>这是一个由&nbsp;DriverManager&nbsp;类加载的驱动程序类名的列表,由冒号<BR>分隔:初始化&nbsp;DriverManager&nbsp;类时,它搜索系统属性&nbsp;jdbc.drivers,<BR>如果用户已输入了一个或多个驱动程序,则&nbsp;DriverManager&nbsp;类将试图加载它们。<BR>以下代码说明程序员如何在&nbsp;~/.hotjava/properties&nbsp;中输入三个驱动程序类(<BR>启动时,HotJava&nbsp;将把它加载到系统属性列表中):&nbsp;<BR>jdbc.drivers=foo.bah.Driver:wombat.sql.Driver:bad.test.ourDriver;<BR><BR>对&nbsp;DriverManager&nbsp;方法的第一次调用将自动加载这些驱动程序类。<BR><BR>注意:加载驱动程序的第二种方法需要持久的预设环境。如果对这一点不能<BR>保证,则调用方法&nbsp;Class.forName&nbsp;显式地加载每个驱动程序就显得更为<BR>安全。这也是引入特定驱动程序的方法,因为一旦&nbsp;DriverManager&nbsp;类被初始化,它<BR>将不再检查&nbsp;jdbc.drivers&nbsp;属性列表。<BR><BR>在以上两种情况中,新加载的&nbsp;Driver&nbsp;类都要通过调用&nbsp;DriverManager.registerDriver&nbsp;<BR>类进行自我注册。如上所述,加载类时将自动执行这一过程。<BR><BR>由于安全方面的原因,JDBC&nbsp;管理层将跟踪哪个类加载器提供哪<BR>个驱动程序。这样,当&nbsp;DriverManager&nbsp;类打开连接时,它仅使用<BR>本地文件系统或与发出连接请求的代码相同的类加载器提供的驱动程序。<BR><BR><BR>3.1.2&nbsp;建立连接<BR>加载&nbsp;Driver&nbsp;类并在&nbsp;DriverManager&nbsp;类中注册后,它们即可用来与数<BR>据库建立连接。当调用&nbsp;DriverManager.getConnection&nbsp;方法发出连接<BR>请求时,DriverManager&nbsp;将检查每个驱动程序,查看它是否可以建立连接。<BR><BR>有时可能有多个&nbsp;JDBC&nbsp;驱动程序可以与给定的&nbsp;URL&nbsp;连接。例如,与<BR>给定远程数据库连接时,可以使用&nbsp;JDBC-ODBC&nbsp;桥驱动程序、JDBC&nbsp;到<BR>通用网络协议驱动程序或数据库厂商提供的驱动程序。在这种情况下<BR>测试驱动程序的顺序至关重要,因为&nbsp;DriverManager&nbsp;将使用它所找到<BR>的第一个可以成功连接到给定&nbsp;URL&nbsp;的驱动程序。<BR><BR>首先&nbsp;DriverManager&nbsp;试图按注册的顺序使用每个驱动程序<BR>(jdbc.drivers&nbsp;中列出的驱动程序总是先注册)。它将跳过代码不可<BR>信任的驱动程序,除非加载它们的源与试图打开连接的代码的源相同。<BR><BR>它通过轮流在每个驱动程序上调用方法&nbsp;Driver.connect,并向它们传<BR>递用户开始传递给方法&nbsp;DriverManager.getConnection&nbsp;的&nbsp;URL&nbsp;来对驱<BR>动程序进行测试,然后连接第一个认出该&nbsp;URL&nbsp;的驱动程序。<BR><BR>这种方法初看起来效率不高,但由于不可能同时加载数十个驱动程序,<BR>因此每次连接实际只需几个过程调用和字符串比较。<BR><BR>以下代码是通常情况下用驱动程序(例如&nbsp;JDBC-ODBC&nbsp;桥驱动程序)<BR>建立连接所需所有步骤的示例:&nbsp;<BR><BR>Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");&nbsp;//加载驱动程序<BR>String&nbsp;url&nbsp;=&nbsp;"jdbc:odbc:fred";<BR>DriverManager.getConnection(url,&nbsp;"userID",&nbsp;"passwd");<BR><BR><BR><BR></FONT></TD></TR> 
  <TR> 
    <TD height=5 width="656"> 
      <HR align=center color=#cccccc noShade SIZE=1> 
    </TD></TR></TBODY> 
  </table> 
</BODY>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -