JDBC驱动程序共分四种类型:
类型1:JDBC-ODBC桥
编辑
这种类型的驱动把所有JDBC的调用传递给ODBC,再让后者调用数据库本地驱动代码(也就是数据库厂商提供的数据库操作二进制代码库,例如Oracle中的oci.dll)。
优点:
只要有对应的ODBC驱动(大部分数据库厂商都会提供),几乎可以访问所有的数据库。
缺点:
执行效率比较低,不适合大数据量存取的应用;
由于需要客户端预装对应的ODBC驱动,不适合Internet/Intranet应用。
类型2:本地API驱动
编辑
这种类型的驱动通过客户端加载数据库厂商提供的本地代码库(C/C++等)来访问数据库,而在驱动程序中则包含了Java代码。
优点:
速度快于第一类驱动(但仍比不上第3、第4类驱动)。
缺点
由于需要客户端预装对应的数据库厂商代码库,仍不适合Internet/Intranet应用。
类型3:网络协议驱动
编辑
这种类型的驱动给客户端提供了一个网络API,客户端上的JDBC驱动程序使用套接字(Socket)来调用服务器上的中间件程序,后者在将其请求转化为所需的具体API调用。
优点:
不需要在客户端加载数据库厂商提供的代码库,单个驱动程序可以对多个数据库进行访问,可扩展性较好。
缺点:
在中间件层仍需对最终数据进行配置;
由于多出一个中间件层,速度不如第四类驱动程序。
类型4:本地协议驱动
编辑
这种类型的驱动使用Socket,直接在客户端和数据库间通信。
优点:
访问速度最快;
这是最直接、最纯粹的Java实现。
缺点:
几乎只有数据库厂商自己才能提供这种类型的JDBC驱动。
需要针对不同的数据库使用不同的驱动程序。