在
JDBC
编程中的第一步就是加载数据库的驱动程序。虽然驱动程序的种类对我们的
JAVA
代码没有影响,但程序员总想知道为什么将驱动程序分成四类。
我们清楚数据库都提供相似的功能,数据库是分布式应用环境,数据库厂商基本都会提供其专门客户端库函数连接其数据库连接服务器。从厂商的角度数据库应用环境如下图:
数据库驱动程序的种类就应该从客户端库函数、服务器端连接服务以及通用连接着手去理解。
Microsoft
为了简化数据库开发,屏蔽程序员使用数据库专门的
API
编程,发明了
ODBC
。程序员使用
ODBC
的
API
就可以编写通用的程序访问不通的数据库。我们第一种
JDBC
驱动程序的想法就有了:用
JAVA
封装调用
ODBC
的
API
就可以访问不同的数据库,这就是
JDBC-ODBC
桥驱动程序。这种驱动程序当然不是纯
JAVA
的。
如果用
JAVA
调用数据库客户端函数去访问专门的数据库,这就是第二种数据库驱动程序。它是专门针对某个数据库的,也不是纯
JAVA
的。
如果开发一个纯
JAVA
的通用的客户端驱动,它联系到安装在服务器上的一个服务程序,这个服务程序再使用数据库的客户端函数访问专门的数据库,这就是第三种驱动程序。这种驱动程序通用,且是纯
JAVA
的。
如果开发一个纯
JAVA
的客户端驱动,它连接到数据库提供的连接服务上。这就是第四种驱动程序,不通用,但是纯
JAVA
的。在
JDBC
编程中多使用这种类型的驱动程序。
以上是我对四种驱动程序的理解。你有更好的想法请与我交流。