什么是JDBC驱动程序?
JDBC驱动程序在JDBC API中实现了已定义的接口,用于与数据库服务器进行交互。
例如,使用JDBC驱动程序,您可以通过发送SQL或数据库命令,然后使用Java接收结果来打开数据库连接并与其进行交互。
JDK附带的 Java.sql 软件包包含各种类,这些类定义了其行为,并且其实际实现是在第三方驱动程序中完成的。第三方供应商在其数据库驱动程序中实现 java.sql.Driver 接口。
JDBC驱动程序类型
JDBC驱动程序的实现因Java在其中运行的多种操作系统和硬件平台而异。Sun将实现类型分为四类,即类型1、2、3和4,下面将对其进行解释-
类型1:JDBC-ODBC桥驱动程序
在类型1驱动程序中,JDBC桥用于访问每台客户端计算机上安装的ODBC驱动程序。使用ODBC,需要在系统上配置代表目标数据库的数据源名称(DSN)。
Java初次问世时,它是一个有用的驱动程序,因为大多数数据库仅支持ODBC访问,但是现在建议仅将这种类型的驱动程序用于实验用途,或者在没有其他可用代替方法的情况下。
JDK 1.2附带的JDBC-ODBC Bridge是这种驱动程序的一个很好的实例。
类型2:JDBC-Native API
在Type 2驱动程序中,JDBC API调用被转换为数据库独有的本机C / C ++ API调用。这些驱动程序通常由数据库供应商提供,并以与JDBC-ODBC Bridge相同的方式使用。供应商特定的驱动程序必须安装在每台客户端计算机上。
如果更改数据库,则必须更改本机API,因为它特定于数据库,并且现在已经过时了,但是使用Type 2驱动程序可以提高速度,因为它消除了ODBC的开销。
Oracle Call Interface(OCI)驱动程序是Type 2驱动程序的示例。
类型3:Java JDBC-Net
在Type 3驱动程序中,使用三层方法来访问数据库。JDBC客户端使用标准网络套接字与中间件应用程序服务器进行通信。然后,套接字信息由中间件应用程序服务器转换为DBMS所需的调用格式,并转发给数据库服务器。
这种驱动程序非常灵活,因为它不需要在客户端上安装任何代码,并且单个驱动程序实际上可以提供对多个数据库的访问。
您可以将应用程序服务器视为JDBC“代理”,这意味着它对客户端应用程序进行调用。因此,您需要一些有关应用程序服务器配置的知识,以便有效地使用此驱动程序类型。
您的应用程序服务器可能使用1、2或4型驱动程序与数据库进行通信,了解细微差别将被证明是有帮助的。
类型4:纯Java
在Type 4驱动程序中,基于Java的纯驱动程序通过套接字连接直接与供应商的数据库通信。这是可用于数据库的性能最高的驱动程序,通常由供应商本身提供。
这种驱动程序非常灵活,您无需在客户端或服务器上安装特殊的软件。此外,可以动态下载这些驱动程序。
MySQL的 Connector/J 驱动程序是Type 4驱动程序。由于其网络协议的专有性质,数据库供应商通常提供4类驱动程序。
应该使用哪个驱动程序?
如果要访问一种数据库类型,例如Oracle,Sybase或IBM,则首选驱动程序类型4。
如果您的Java应用程序同时访问多种类型的数据库,则类型3是首选驱动程序。
在您的数据库尚无法使用3型或4型驱动程序的情况下,类型2驱动程序很有用。
类型1驱动程序不被视为部署级驱动程序,通常仅用于开发和测试目的。