1.JDBC-ODBC Bridge Driver
SUN发布JDBC规范时,市场上可用的JDBC驱动程序并不多,但是已经逐渐成熟的ODBC方案使得通过ODBC驱动程序几乎可以连接所有类型的数据源。所以SUN发布了JDBC-ODBC的桥接驱动,利用现成的ODBC架构将JDBC调用转换为ODBC调用,避免了JDBC无驱动可用的窘境,如图2-6所示。但是,由于桥接的限制,并非所有功能都能直接转换并正常调用,而多层调用转换对性能也有一定的影响,除非没有其他解决方案,否则不采用桥接架构。
2.Native API Driver
这类驱动程序会直接调用数据库提供的原生链接库或客户端,因为没有中间过程,访问速度通常表现良好,如图2-7所示。但是驱动程序与数据库和平台绑定无法达到JDBC跨平台的基本目的。在JDBC规范中也是不被推荐的选择。
3.JDBC-Net Driver
这类驱动程序会将JDBC调用转换为独立于数据库的协议,然后通过特定的中间组件或服务器转换为数据库通信协议,主要目的是获得更好的架构灵活性,如图2-8所示。例如,更换数据库时可以通过更换中间组件实现。数据库厂商开发的驱动通常还提供额外的功能,例如高级安全特性等,而且通过中间服务器转换会对性能有一定影响。JDBC领域这种类型驱动并不常见,而微软的ADO.NET是这种架构的典型。
4.Native Protocol Driver
这是最常见的驱动程序类型,开发中使用的驱动包基本都属于此类,通常由数据库厂商直接提供,例如mysql-connector-java,驱动程序把JDBC调用转换为数据库特定的网络通信协议,如图2-9所示。使用网络通信,驱动程序可以纯Java实现,支持跨平台部署,性能也较好。
注意:摘要于《mybatis3源码深度解析》
标签:JDBC,驱动程序,数据库,ODBC,调用,类型,驱动 From: https://www.cnblogs.com/daitao-blog/p/17280778.html