1.JDBC-ODBC桥驱动(桥):将所有JDBC调用转换为ODBC调用并发送给ODBC驱动程序。ODBC是一个通用API。所以仅建议在实验中或是没有其他可替代方法可以使用的时候用JDBC-ODBC桥驱动。
优点:自从ODBC驱动可用以来,JDBC-ODBC桥几乎允许访问所有数据库类型。
缺点:①不是全用JAVA语言编写,所以不可移植。②由于需要JDBC调用指令经过桥到达ODBC驱动,再连接数据库,这使它成为了最慢的驱动类型。③客户端需要安装ODBC驱动程序。④不适用网络。
2.本地API/部分JAVA驱动(本地):将JDBC调用转换为特定的数据库调用指令,即一个特定的驱动对一个特定的数据库,像ORACLE的本地API。
优点:比第一种快,因为通信层比它小。
缺点:①客户端必须安装本地API,因此第二种不能用于互联网。②和第一种一样,不是JAVA语言编写,不可移植。③若要改变数据库,必须先改变特定数据库对应的本地API。④已经过时。⑤通常不是线程安全。
3.所有JAVA/网络协议驱动(中间层):数据库请求通过网络传递到中间层服务器,然后中间层将请求发送至数据库。如果要替换中间层,可以用第一、二、四种驱动。
优点:①这个驱动基于服务器,所以不需要客户端安装任何数据库。②完全使用JAVA编写,便于携带,适用于网络。③可移植性,性能和伸缩性有较好发展前景。④网络协议设计可以使客户端JDBC驱动加载变得又小又快。⑤通常提供功能如缓存(连接,查询结果等),负载平衡和先进的系统日志记录、审计等。⑥通过一个驱动器可以十分灵活访问多个数据库。⑦它是所有驱动中最高效的。
缺点:需要另一个服务器应用程序来安装维护。遍历记录可能需要很长时间,因为数据来自后端服务器。
4.所有JAVA/本地协议驱动(纯):使用JAVA网络库直接与数据库服务器进行通信。
优点:①完全用JAVA编写实现平台独立,消除部署管理问题。最适用于网络。②转换层数量最少。第四种JDBC驱动不需要转换数据库请求到ODBC、本地连接接口或者将请求发送至另一个服务器,通常性能很好。③不需要在客户端或者服务器上安装任何软件。此外,驱动程序可以动态下载。
缺点:用户需要对每个数据库使用不同的驱动程序。