jdbctm 指南:入门1 - 介绍.htm

来自「写给JSP初级程序员的书」· HTM 代码 · 共 36 行 · 第 1/2 页

HTM
36
字号
<META content="MSHTML 5.00.2920.0" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff text=#000000>

  <table><tbody>
  <TR>
    <TD height=21>
      <DIV align=center><B><FONT size=3>JDBCTM 指南:入门1 - 介绍 
      <BR><FONT size=2> </FONT></FONT></FONT>
      <HR align=center color=#cccccc noShade SIZE=1>
      </DIV></TD></TR>
  <TR>
    <TD class=line><FONT 
      color=#333300>本简介是从《JDBCTM&nbsp;Database&nbsp;Access&nbsp;from&nbsp;JavaTM:&nbsp;A&nbsp;Tutorial&nbsp;and&nbsp;Annotated&nbsp;Reference&nbsp;》这本书中摘引来的。<BR>JavaSoft&nbsp;目前正在准备这本书。这是一本教程,同时也是&nbsp;JDBC&nbsp;的重要参考手册,它将作为&nbsp;Java&nbsp;系列的组成部份在&nbsp;1997&nbsp;年春季由&nbsp;Addison-Wesley&nbsp;出版公司出版。&nbsp;<BR><BR><BR>1.1&nbsp;什么是&nbsp;JDBCTM?&nbsp;<BR>JDBCTM&nbsp;是一种用于执行&nbsp;SQL&nbsp;语句的&nbsp;JavaTM&nbsp;API(有意思的是,JDBC&nbsp;本身是个商标名而不是一个缩写字;然而,JDBC&nbsp;常被认为是代表&nbsp;“Java&nbsp;数据库连接&nbsp;(Java&nbsp;Database&nbsp;Connectivity)”)。它由一组用&nbsp;Java&nbsp;编程语言编写的类和接口组成。JDBC&nbsp;为工具/数据库开发人员提供了一个标准的&nbsp;API,使他们能够用纯&nbsp;Java&nbsp;API&nbsp;来编写数据库应用程序。&nbsp;<BR><BR>有了&nbsp;JDBC,向各种关系数据库发送&nbsp;SQL&nbsp;语句就是一件很容易的事。换言之,有了&nbsp;JDBC&nbsp;API,就不必为访问&nbsp;Sybase&nbsp;数据库专门写一个程序,为访问&nbsp;Oracle&nbsp;数据库又专门写一个程序,为访问&nbsp;Informix&nbsp;数据库又写另一个程序,等等。您只需用&nbsp;JDBC&nbsp;API&nbsp;写一个程序就够了,它可向相应数据库发送&nbsp;SQL&nbsp;语句。而且,使用&nbsp;Java&nbsp;编程语言编写的应用程序,就无须去忧虑要为不同的平台编写不同的应用程序。将&nbsp;Java&nbsp;和&nbsp;JDBC&nbsp;结合起来将使程序员只须写一遍程序就可让它在任何平台上运行。&nbsp;<BR><BR>Java&nbsp;具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是&nbsp;Java&nbsp;应用程序与各种不同数据库之间进行对话的方法。而&nbsp;JDBC&nbsp;正是作为此种用途的机制。&nbsp;<BR><BR>JDBC&nbsp;扩展了&nbsp;Java&nbsp;的功能。例如,用&nbsp;Java&nbsp;和&nbsp;JDBC&nbsp;API&nbsp;可以发布含有&nbsp;applet&nbsp;的网页,而该&nbsp;applet&nbsp;使用的信息可能来自远程数据库。企业也可以用&nbsp;JDBC&nbsp;通过&nbsp;Intranet&nbsp;将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机<BR>有&nbsp;Windows、&nbsp;Macintosh&nbsp;和&nbsp;UNIX&nbsp;等各种不同的操作系统)。随着越来越多的程序员开始使用&nbsp;Java&nbsp;编程语言,对从&nbsp;Java中便捷地访问数据库的要求也在日益增加。&nbsp;<BR><BR>MIS&nbsp;管理员们都喜欢&nbsp;Java&nbsp;和&nbsp;JDBC&nbsp;的结合,因为它使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于商务上的销售信息服务,&nbsp;Java&nbsp;和&nbsp;JDBC&nbsp;可为外部客户提供获取信息更新的更好方法。&nbsp;<BR><BR><BR>1.1.1&nbsp;JDBC&nbsp;的用途是什么?&nbsp;<BR>简单地说,JDBC&nbsp;可做三件事:&nbsp;<BR><BR><BR><BR>与数据库建立连接,&nbsp;<BR>发送&nbsp;SQL&nbsp;语句,&nbsp;<BR>处理结果。&nbsp;<BR><BR><BR>下列代码段给出了以上三步的基本示例:&nbsp;<BR><BR>Connection&nbsp;con&nbsp;=&nbsp;DriverManager.getConnection&nbsp;(&nbsp;<BR>"jdbc:odbc:wombat",&nbsp;"login",&nbsp;"password");&nbsp;<BR>Statement&nbsp;stmt&nbsp;=&nbsp;con.createStatement();&nbsp;<BR>ResultSet&nbsp;rs&nbsp;=&nbsp;stmt.executeQuery("SELECT&nbsp;a,&nbsp;b,&nbsp;c&nbsp;FROM&nbsp;Table1");&nbsp;<BR>while&nbsp;(rs.next())&nbsp;{&nbsp;<BR>int&nbsp;x&nbsp;=&nbsp;rs.getInt("a");&nbsp;<BR>String&nbsp;s&nbsp;=&nbsp;rs.getString("b");&nbsp;<BR>float&nbsp;f&nbsp;=&nbsp;rs.getFloat("c");&nbsp;<BR>}&nbsp;<BR><BR><BR>1.1.2&nbsp;JDBC&nbsp;是一种低级&nbsp;API&nbsp;,是高级&nbsp;API&nbsp;的基础&nbsp;<BR>JDBC&nbsp;是个“低级”接口,也就是说,它用于直接调用&nbsp;SQL&nbsp;命令。在这方面它的功能极佳,并比其它的数据库连接&nbsp;API&nbsp;易于使用,但它同时也被设计为一种基础接口,在它之上可以建立高级接口和工具。高级接口是“对用户友好的”接口,它使用的是一种更易理解和更为方便的&nbsp;API,这种&nbsp;API&nbsp;在幕后被转换为诸如&nbsp;JDBC&nbsp;这样的低级接口。在编写本文时,正在开发两种基于&nbsp;JDBC&nbsp;的高级&nbsp;API:&nbsp;<BR><BR><BR>一种用于&nbsp;Java&nbsp;的嵌入式&nbsp;SQL。至少已经有一个提供者计划编写它。DBMS&nbsp;实现&nbsp;SQL:一种专门设计来与数据库联合使用的语言。JDBC&nbsp;要求&nbsp;SQL&nbsp;语句必须作为&nbsp;String&nbsp;传给&nbsp;Java&nbsp;方法。相反,嵌入式&nbsp;SQL&nbsp;预处理器允许程序员将&nbsp;SQL&nbsp;语句直接与Java&nbsp;混在一起使用。例如,可在&nbsp;SQL&nbsp;语句中使用&nbsp;Java&nbsp;变量,用以接受或提供&nbsp;SQL&nbsp;值。然后,嵌入式&nbsp;SQL&nbsp;预处理器将通过&nbsp;JDBC&nbsp;调用把这种&nbsp;Java/SQL&nbsp;的混合物转换为&nbsp;Java。&nbsp;<BR>关系数据库表到&nbsp;Java&nbsp;类的直接映射。JavaSoft&nbsp;和其它提供者都声称要实现该&nbsp;API。在这种“对象/关系”映射中,表中的每行对应于类的一个实例,而每列的值对应于该实例的一个属性。于是,程序员可直接对&nbsp;Java&nbsp;对象进行操作;存取数据所<BR>需的&nbsp;SQL&nbsp;调用将在“掩盖下”自动生成。此外还可提供更复杂的映射,例如将多个表中的行结合进一个&nbsp;Java&nbsp;类中。&nbsp;<BR>随着人们对&nbsp;JDBC&nbsp;的兴趣日益增涨,越来越多的开发人员一直在使用基于&nbsp;JDBC&nbsp;的工具,以使程序的编写更加容易。程序员也一直在编写力图使最终用户对数据库的访问变得更为简单的应用程序。例如,应用程序可提供一个选择数据库任务的菜单。<BR>任务被选定后,应用程序将给出提示及空白供填写执行选定任务所需的信息。所需信息输入后,应用程序将自动调用所需的SQL&nbsp;命令。在这样一种程序的协助下,即使用户根本不懂&nbsp;SQL&nbsp;的语法,也可以执行数据库任务。&nbsp;<BR><BR><BR>1.1.3&nbsp;JDBC&nbsp;与&nbsp;ODBC&nbsp;和其它&nbsp;API&nbsp;的比较&nbsp;<BR>目前,Microsoft&nbsp;的&nbsp;ODBC(开放式数据库连接)API&nbsp;可能是使用最广的、用于访问关系数据库的编程接口。它能在几乎所有平台上连接几乎所有的数据库。为什么&nbsp;Java&nbsp;不使用&nbsp;ODBC?&nbsp;<BR><BR>对这个问题的回答是:Java&nbsp;可以使用&nbsp;ODBC,但最好是在&nbsp;JDBC&nbsp;的帮助下以&nbsp;JDBC-ODBC&nbsp;桥的形式使用,这一点我们稍后再说。现在的问题已变成:“为什么需要&nbsp;JDBC”?&nbsp;回答如下:&nbsp;<BR><BR><BR>ODBC&nbsp;不适合直接在&nbsp;Java&nbsp;中使用,因为它使用&nbsp;C&nbsp;语言接口。从&nbsp;Java&nbsp;调用本地&nbsp;C&nbsp;代码在安全性、实现、坚固性和程序的自动移植性方面都有许多缺点。&nbsp;<BR>从&nbsp;ODBC&nbsp;C&nbsp;API&nbsp;到&nbsp;Java&nbsp;API&nbsp;的字面翻译是不可取的。例如,Java&nbsp;没有指针,而&nbsp;ODBC&nbsp;却对指针用得很广泛(包括很容易出错的指针&nbsp;"void&nbsp;*")。您可以将&nbsp;JDBC&nbsp;想象成被转换为面向对象接口的&nbsp;ODBC,而面向对象的接口对&nbsp;Java&nbsp;程序员来说较<BR>易于接收。&nbsp;<BR>ODBC&nbsp;很难学。它把简单和高级功能混在一起,而且即使对于简单的查询,其选项也极为复杂。相反,JDBC&nbsp;尽量保证简单功能的简便性,而同时在必要时允许使用高级功能。&nbsp;<BR>启用“纯&nbsp;Java&nbsp;”机制需要象&nbsp;JDBC&nbsp;这样的&nbsp;Java&nbsp;API。如果使用&nbsp;ODBC,就必须手动地将&nbsp;ODBC&nbsp;驱动程序管理器和驱动程序安装在每台客户机上。如果完全用&nbsp;Java&nbsp;编写&nbsp;JDBC&nbsp;驱动程序则&nbsp;JDBC&nbsp;代码在所有&nbsp;Java&nbsp;平台上(从网络计算机到大型机)<BR>都可以自动安装、移植并保证安全性。&nbsp;<BR>总之,JDBC&nbsp;API&nbsp;对于基本的&nbsp;SQL&nbsp;抽象和概念是一种自然的&nbsp;Java&nbsp;接口。它建立在&nbsp;ODBC&nbsp;上而不是从零开始。因此,熟悉&nbsp;ODBC&nbsp;的程序员将发现&nbsp;JDBC&nbsp;很容易使用。JDBC&nbsp;保留了&nbsp;ODBC&nbsp;的基本设计特征;事实上,两种接口都基于&nbsp;X/Open&nbsp;SQL&nbsp;CLI<BR>(调用级接口)。它们之间最大的区别在于:JDBC&nbsp;以&nbsp;Java&nbsp;风格与优点为基础并进行优化,因此更加易于使用。&nbsp;<BR><BR>最近,Microsoft&nbsp;又引进了&nbsp;ODBC&nbsp;之外的新&nbsp;API:&nbsp;RDO、&nbsp;ADO&nbsp;和&nbsp;OLE&nbsp;DB。这些设计在许多方面与&nbsp;JDBC&nbsp;是相同的,即它们都是面向对象的数据库接口且基于可在&nbsp;ODBC&nbsp;上实现的类。但在这些接口中,我们未看见有特别的功能使我们要转而选择它<BR>们来替代&nbsp;ODBC,尤其是在&nbsp;ODBC&nbsp;驱动程序已建立起较为完善的市场的情况下。它们最多也就是在&nbsp;ODBC&nbsp;上加了一种装饰而已。这并不是说&nbsp;JDBC&nbsp;不需要从其最初的版本再发展了;然而,我们觉得大部份的新功能应归入诸如前一节中所述的对象/关系映射和嵌入式&nbsp;SQL&nbsp;这样的高级&nbsp;API。&nbsp;<BR><BR><BR>1.1.4&nbsp;两层模型和三层模型&nbsp;<BR>JDBC&nbsp;API&nbsp;既支持数据库访问的两层模型,同时也支持三层模型。&nbsp;<BR><BR>在两层模型中,Java&nbsp;applet&nbsp;或应用程序将直接与数据库进行对话。这将需要一个&nbsp;JDBC&nbsp;驱动程序来与所访问的特定数据库管理系统进行通讯。用户的&nbsp;SQL&nbsp;语句被送往数据库中,而其结果将被送回给用户。数据库可以位于另一台计算机上,用户通过网络连接到上面。这就叫做客户机/服务器配置,其中用户的计算机为客户机,提供数据库的计算机为服务器。网络可以是&nbsp;Intranet(它可将公司职员连接起来),也可以是&nbsp;Internet。&nbsp;<BR><BR><BR><BR><BR><BR>在三层模型中,命令先是被发送到服务的“中间层”,然后由它将&nbsp;SQL&nbsp;语句发送给数据库。数据库对&nbsp;SQL&nbsp;语句进行处理并将结果送回到中间层,中间层再将结果送回给用户。MIS&nbsp;主管们都发现三层模型很吸引人,因为可用中间层来控制对公司数据的访问和可作的的更新的种类。中间层的另一个好处是,用户可以利用易于使用的高级&nbsp;API,而中间层将把它转换为相应的低级调用。最后,许多情况下三层结构可提供一些性能上的好处。&nbsp;<BR><BR><BR><BR><BR>到目前为止,中间层通常都用&nbsp;C&nbsp;或&nbsp;C++&nbsp;这类语言来编写,这些语言执行速度较快。然而,随着最优化编译器(它把&nbsp;Java字节代码转换为高效的特定于机器的代码)的引入,用&nbsp;Java&nbsp;来实现中间层将变得越来越实际。这将是一个很大的进步,它使人们可以充分利用&nbsp;Java&nbsp;的诸多优点(如坚固、多线程和安全等特征)。JDBC&nbsp;对于从&nbsp;Java&nbsp;的中间层来访问数据库非常重要。&nbsp;<BR><BR><BR>1.1.5&nbsp;SQL&nbsp;的一致性&nbsp;<BR>结构化查询语言&nbsp;(SQL)&nbsp;是访问关系数据库的标准语言。困难之处在于:虽然大多数的&nbsp;DBMS&nbsp;(数据库管理系统)对其基本功能都使用了标准形式的&nbsp;SQL,但它们却不符合最近为更高级的功能定义的标准&nbsp;SQL&nbsp;语法或语义。例如,并非所有的数据库都支持储存程序或外部连接,那些支持这一功能的数据库又相互不一致。人们希望&nbsp;SQL&nbsp;中真正标准的那部份能够进行扩展以包括越来越多的功能。但同时&nbsp;JDBC&nbsp;API&nbsp;又必须支持现有的&nbsp;SQL。&nbsp;<BR><BR>JDBC&nbsp;API&nbsp;解决这个问题的一种方法是允许将任何查询字符串一直传到所涉及的&nbsp;DBMS&nbsp;驱动程序上。这意味着应用程序可以使用任意多的&nbsp;SQL&nbsp;功能,但它必须冒这样的风险:有可能在某些&nbsp;DBMS&nbsp;上出错。事实上,应用程序查询甚至不一定要是&nbsp;SQL,或者说它可以是个为特定的&nbsp;DBMS&nbsp;设计的&nbsp;SQL&nbsp;的专用派生物(例如,文档或图象查询)。&nbsp;<BR><BR>JDBC&nbsp;处理&nbsp;SQL&nbsp;一致性问题的第二种方法是提供&nbsp;ODBC&nbsp;风格的转义子句。这将在&nbsp;4.1.5&nbsp;节“语句对象中的&nbsp;SQL&nbsp;转义语法”中讨论。&nbsp;<BR><BR>转义语法为几个常见的&nbsp;SQL&nbsp;分歧提供了一种标准的&nbsp;JDBC&nbsp;语法。例如,对日期文字和已储存过程的调用都有转义语法。&nbsp;<BR><BR>对于复杂的应用程序,JDBC&nbsp;用第三种方法来处理&nbsp;SQL&nbsp;的一致性问题。它利用&nbsp;DatabaseMetaData&nbsp;接口来提供关于&nbsp;DBMS&nbsp;的描述性信息,从而使应用程序能适应每个&nbsp;DBMS&nbsp;的要求和功能。&nbsp;<BR><BR>由于&nbsp;JDBC&nbsp;API&nbsp;将用作开发高级数据库访问工具和&nbsp;API&nbsp;的基础&nbsp;API,因此它还必须注意其所有上层建筑的一致性。“符合&nbsp;JDBC&nbsp;标准TM"&nbsp;代表用户可依赖的&nbsp;JDBC&nbsp;功能的标准级别。要使用这一说明,驱动程序至少必须支持&nbsp;ANSI&nbsp;SQL-2&nbsp;Entry&nbsp;Level(ANSI&nbsp;SQL-2&nbsp;代表美国国家标准局&nbsp;1992&nbsp;年所采用的标准。Entry&nbsp;Level&nbsp;代表&nbsp;SQL&nbsp;功能的特定清单)。驱动程序开发人员可用&nbsp;JDBC&nbsp;API&nbsp;所带的测试工具包来确定他们的驱动程序是否符合这些标准。&nbsp;<BR><BR>“符合&nbsp;JDBC&nbsp;标准TM”&nbsp;表示提供者的&nbsp;JDBC&nbsp;实现已经通过了&nbsp;JavaSoft&nbsp;提供的一致性测试。这些一致性测试将检查&nbsp;JDBC&nbsp;API&nbsp;中定义的所有类和方法是否都存在,并尽可能地检查程序是否具有&nbsp;SQL&nbsp;Entry&nbsp;Level&nbsp;功能。当然,这些测试并不完全,而且&nbsp;JavaSoft&nbsp;目前也无意对各提供者的实现进行标级。但这种一致性定义的确可对&nbsp;JDBC&nbsp;实现提供一定的可信度。随着越来越多的数据库提供者、连接提供者、Internet&nbsp;提供者和应用程序编程员对&nbsp;JDBC&nbsp;API&nbsp;的接受,JDBC&nbsp;也正迅速成为&nbsp;Java&nbsp;数据库访问的标准。&nbsp;<BR><BR><BR>1.2&nbsp;JDBC&nbsp;产品&nbsp;<BR>在编写本文时,有几个基于&nbsp;JDBC&nbsp;的产品已开发完毕或正在开发中。当然,本节中的信息将很快成为过时信息。因此,有关最新的信息,请查阅&nbsp;JDBC&nbsp;的网站,可通过从以下&nbsp;URL&nbsp;开始浏览找到:&nbsp;<BR><BR>http://java.sun.com/products/jdbc&nbsp;<BR><BR><BR>1.2.1&nbsp;JavaSoft&nbsp;框架&nbsp;<BR>JavaSoft&nbsp;提供三种&nbsp;JDBC&nbsp;产品组件,它们是&nbsp;Java&nbsp;开发工具包&nbsp;(JDK)&nbsp;的组成部份:&nbsp;<BR><BR><BR>JDBC&nbsp;驱动程序管理器,&nbsp;<BR><BR><BR>JDBC&nbsp;驱动程序测试工具包,和&nbsp;<BR><BR><BR>JDBC-ODBC&nbsp;桥。&nbsp;<BR><BR><BR>JDBC&nbsp;驱动程序管理器是&nbsp;JDBC&nbsp;体系结构的支柱。它实际上很小,也很简单;其主要作用是把&nbsp;Java&nbsp;应用程序连接到正确的JDBC&nbsp;驱动程序上,然后即退出。&nbsp;<BR><BR>JDBC&nbsp;驱动程序测试工具包为使&nbsp;JDBC&nbsp;驱动程序运行您的程序提供一定的可信度。只有通过&nbsp;JDBC&nbsp;驱动程序测试包的驱动程序才被认为是符合&nbsp;JDBC&nbsp;标准TM&nbsp;的。&nbsp;<BR><BR>JDBC-ODBC&nbsp;桥使&nbsp;ODBC&nbsp;驱动程序可被用作&nbsp;JDBC&nbsp;驱动程序。它的实现为&nbsp;JDBC&nbsp;的快速发展提供了一条途径,其长远目标提供一种访问某些不常见的&nbsp;DBMS(如果对这些不常见的&nbsp;DBMS&nbsp;未实现&nbsp;JDBC)&nbsp;的方法。&nbsp;<BR><BR><BR><BR><BR><BR>1.2.2&nbsp;JDBC&nbsp;驱动程序的类型&nbsp;<BR>我们目前所知晓的&nbsp;JDBC&nbsp;驱动程序可分为以下四个种类:&nbsp;<BR><BR><BR>JDBC-ODBC&nbsp;桥加&nbsp;ODBC&nbsp;驱动程序:JavaSoft&nbsp;桥产品利用&nbsp;ODBC&nbsp;驱动程序提供&nbsp;JDBC&nbsp;访问。注意,必须将&nbsp;ODBC&nbsp;二进制代码(许多情况下还包括数据库客户机代码)加载到使用该驱动程序的每个客户机上。因此,这种类型的驱动程序最适合于企业网(这种网络上客户机的安装不是主要问题),或者是用&nbsp;Java&nbsp;编写的三层结构的应用程序服务器代码。&nbsp;本地&nbsp;API&nbsp;-&nbsp;部份用&nbsp;Java&nbsp;来编写的驱动程序:&nbsp;这种类型的驱动程序把客户机&nbsp;API&nbsp;上的&nbsp;JDBC&nbsp;调用转换为&nbsp;Oracle、&nbsp;Sybase、Informix、DB2&nbsp;或其它&nbsp;DBMS&nbsp;的调用。注意,象桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机上。&nbsp;<BR>JDBC&nbsp;网络纯&nbsp;Java&nbsp;驱动程序:这种驱动程序将&nbsp;JDBC&nbsp;转换为与&nbsp;DBMS&nbsp;无关的网络协议,之后这种协议又被某个服务器转换为一种&nbsp;DBMS&nbsp;协议。这种网络服务器中间件能够将它的纯&nbsp;Java&nbsp;客户机连接到多种不同的数据库上。所用的具体协议取决于提供者。通常,这是最为灵活的&nbsp;JDBC&nbsp;驱动程序。有可能所有这种解决方案的提供者都提供适合于&nbsp;Intranet&nbsp;用的产品。为了使这些产品也支持&nbsp;Internet&nbsp;访问,它们必须处理&nbsp;Web&nbsp;所提出的安全性、通过防火墙的访问等方面的额外要求。几家提供者正将&nbsp;JDBC&nbsp;驱动程序加到他们现有的数据库中间件产品中。&nbsp;<BR>本地协议纯&nbsp;Java&nbsp;驱动程序:这种类型的驱动程序将&nbsp;JDBC&nbsp;调用直接转换为&nbsp;DBMS&nbsp;所使用的网络协议。这将允许从客户机机器上直接调用&nbsp;DBMS&nbsp;服务器,是&nbsp;Intranet&nbsp;访问的一个很实用的解决方法。由于许多这样的协议都是专用的,因此数据库提供者自己将是主要来源,有几家提供者已在着手做这件事了。&nbsp;<BR>最后,我们预计第&nbsp;3、4&nbsp;类驱动程序将成为从&nbsp;JDBC&nbsp;访问数据库的首选方法。第&nbsp;1、2&nbsp;类驱动程序在直接的纯&nbsp;Java&nbsp;驱动程序还没有上市前将会作为过渡方案来使用。对第&nbsp;1、2&nbsp;类驱动程序可能会有一些变种(下表中未列出),这些变种要求有连接器,但通常这些是更加不可取的解决方案。第&nbsp;3、4&nbsp;类驱动程序提供了&nbsp;Java&nbsp;的所有优点,包括自动安装(例如,通过使用&nbsp;JDBC&nbsp;驱动程序的&nbsp;applet&nbsp;applet来下载该驱动程序)。&nbsp;<BR><BR>下表显示了这&nbsp;4&nbsp;种类型的驱动程序及其属性:&nbsp;<BR><BR><BR>驱动程序种类&nbsp;纯&nbsp;JAVA?&nbsp;网络协议&nbsp;<BR>1&nbsp;-&nbsp;JDBC-OCBC&nbsp;桥&nbsp;非&nbsp;直接&nbsp;<BR>2&nbsp;-&nbsp;基于本地&nbsp;API&nbsp;的&nbsp;非&nbsp;直接&nbsp;<BR>3&nbsp;-&nbsp;JDBC&nbsp;网络的&nbsp;是&nbsp;要求连接器&nbsp;<BR>4&nbsp;-&nbsp;基于本地协议的&nbsp;是&nbsp;直接&nbsp;<BR><BR><BR><BR>1.2.3&nbsp;JDBC&nbsp;驱动程序的获取&nbsp;<BR>在编写本文时,已有几十个属于种类的驱动程序,即可与&nbsp;Javasoft&nbsp;桥联合使用的&nbsp;1:&nbsp;ODBC&nbsp;驱动程序的驱动程序。有大约十多个属于种类&nbsp;2&nbsp;的驱动程序是以&nbsp;DBMS&nbsp;的本地&nbsp;API&nbsp;为基础编写的。只有几个属于种类&nbsp;3&nbsp;的驱动程序。目前至少有&nbsp;2&nbsp;个属于种类&nbsp;4&nbsp;的驱动程序,但到&nbsp;1997&nbsp;年底,我们预计主要的&nbsp;DBMS&nbsp;都会有种类&nbsp;4&nbsp;的驱动程序。&nbsp;<BR><BR>要获取关于驱动程序的最新信息,请查阅&nbsp;JDBC&nbsp;的网站,其网址为:&nbsp;http://&nbsp;java.sun.com/products/jdbc。提供第&nbsp;3&nbsp;种驱动程序的首批提供者是&nbsp;SCO、Open&nbsp;Horizon、Visigenic&nbsp;和&nbsp;WebLogic。JavaSoft&nbsp;和数据库连接的领先提供者&nbsp;Intersolv合作研制了&nbsp;JDBC-ODBC&nbsp;桥和&nbsp;JDBC&nbsp;驱动程序测试工具包。&nbsp;<BR><BR><BR>1.2.4&nbsp;其它产品&nbsp;<BR>各种&nbsp;JDBC&nbsp;应用程序的开发工具正在开发中。请注意查阅&nbsp;JavaSoft&nbsp;网页以得到更新信息。&nbsp;<BR><BR><BR><BR></FONT></TD></TR>
  <TR>
    <TD height=5>
      <HR align=center color=#cccccc noShade SIZE=1>
    </TD></TR></TBODY></BODY></HTML>

⌨️ 快捷键说明

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