jdbc驱动是使得java应用程序与数据库进行交互的软件组件(sofeware component)。这里有四种类型的JDBC驱动:
1 JDBC-ODBC bridge driver(JDBC-ODBC桥驱动)
2 Native-API driver(本地API驱动)
3 NetWork Protocol driver(网络协议驱动)
4 Thin driver
注意:关于Thin driver我没有找到中文是怎么命名的,倒是看到了oracle中的thin模式,不知道其中有没有关联。
1 JDBC-ODBC桥驱动
JDBC-ODBC桥驱动是通过ODBC驱动连接数据库的。JDBC-ODBC桥驱动是将JDBC方法调用
转换为ODBC方法调用。不过现在因thin driver的原因而不赞成使用。
在Java 8中,jdbc-odbc桥已经被移除。
oracle从java8.0开始不支持JDBC-ODBC桥,oracle建议您使用数据库供应商提供的jdbc驱动,而不是JDBC-ODBC桥驱动。
优势:
简单使用
可以很容易的联系上任何数据库
劣势:
因JDBC方法调用需要转换成ODBC方法调用而性能下降
在客户端中需要安装ODBC驱动
2 本地API驱动
本地API驱动使用数据库提供的客户端库。这种驱动将JDBC方法调用转换为本地数据库API
调用。并不是所有脚本都写在java中。
优势:
相对于JDBC-ODBC桥驱动来说性能有所提高
劣势:
在每一台客户机上都需要安装本地驱动
客户机上需要安装供应商的客户端库。
3 网络协议驱动
网络协议驱动程序使用中间件(应用程序服务器),将JDBC调用直接转换为特定于供应商
的数据库协议。它完成用java编写。
优势:
由于应用程序服务器可以执行许多任务,如审计,负载平衡,日志记录等,因此
不需要客户端库。
劣势
客户端需要网络支持
需要在中间层中完成特定数据库的编码。
网络协议驱动程序的维护变得昂贵,因为它需要在中间层完成特定于数据库的编码。
4 Thin driver
thin driver将JDBC调用直接转换为特定与供应商的数据库协议。这就是它被称为thin driver的原因。它完全用Java语言编写。
优势:
1 比其他驱动性能都好
2 在客户端或服务端并需要软件
劣势:
驱动依赖于数据库
原文:JDBC Driver