1、JDBC驱动程序是什么?
- JDBC驱动程序在JDBC API中实现定义的接口,用于与数据库服务器进行交互。
- 例如,使用JDBC驱动程序,可以通过发送SQL或者数据库命令,然后使用Java接收结果来打开数据库连接并与数据库进行交互。
- JDB附带的Java.sql包含各种类,其类的行为被定义,实现在第三方驱动程序中完成。第三方供应商在其数据库驱动程序中实现java.sql.Driver接口。
2、JDBC驱动程序类型
- JDBC驱动程序实现因Java运行的各种操作系统和硬件平台而异。Sun将实现类型分为四种类型,分别为1,2,3和4类型,如下所述:
a、类型1:JDBC-ODBC桥驱动程序
- 在类型1驱动程序中,JDBC桥接器用于访问安装在每台客户机中的ODBC驱动程序。使用ODBC需要在系统上配置表示目标数据库的数据源名称(DSN)。
(ODBC与JDBC比较请参考http://blog.csdn.net/u010191243/article/details/46685951博客)
- 当Java第一次出现时,这是一个驱动程序,因为大多数数据库仅支持ODBC访问,现在这种类型的驱动程序仅仅推荐用于实验性使用或者没有其他替代方案时使用。(“vendor”中文为供应商)
- JDK1.2附带的JDBC-ODBC桥接是这种驱动程序的一个很好的例子。
b、类型2:JDBC本地API
- 在类型2驱动程序中,JDBC API调用将转换成本地C/C++ API调用,这是数据库中唯一的。这些驱动程序通常由数据库供应商提供,并以与JDBC-ODBC桥接相同的方式使用。必须在每个客户机上安装供应商特定的驱动程序。
- 如果要更改数据库,则必须更改原生API,因为它特定于数据库,并且现在大部分已经过时,但是使用类型2驱动程序实现一些扩展功能的开发,它消除了ODBC的开销。
- Oracle调用接口(OCI)驱动程序是类型2驱动程序的示例。
c、类型3:JDBC-Net纯Java
- 在类型3驱动程序中,使用三层方法访问数据库。JDBC客户端使用标准网络套接字与中间件应用程序服务器进行通信。套接字信息随后由中间件应用服务器转换成DBMS所需的调用格式,并转发到数据库服务器中。
- 这种驱动程序是非常灵活的,因为它不需要在客户端中安装代码,一个驱动程序实际上可以提供多个数据库的访问。
- 可以将应用程序服务器视为JDBC代理,它会调用客户端应用程序。因此,我们需要了解应用程序服务器的配置,才能有效地使用此驱动程序类型。
- 应用程序服务器可能会使用类型1,2或4驱动程序与数据库通信,了解细微差别对理解JDBC是有帮助的。
d、类型4:100%纯Java
- 在类型4的驱动程序中,基于Java的驱动程序通过套接字连接与供应商的数据库直接通信。这是数据库可用最高的性能驱动程序,通常由供应商自己提供。
- 这种驱动是非常灵活的,不需要在客户端或者服务器上安装特殊的软件。此外,这些驱动程序可以动态下载。
- MySQL Connector/J 驱动程序是类型4驱动程序。由于其网络协议的专有性质,数据库供应商通常提供类型4驱动程序。
3、应该使用哪个驱动程序?
- 如果正在访问一种类型的数据库,例如Oracle/Sybase或者IBM DB1,则首选驱动程序类型为类型4。
- 如果Java应用程序同时访问多种类型的数据库,则类型3是首选驱动程序。
- 类型2驱动程序在数据库不可用类型3或者类型4驱动程序的情况下使用。
- 类型1驱动程序不被是被部署级驱动程序,通常仅仅用于开发和测试目的。