2.6_Database Interface JDBC及驱动类型
JAVA语言参考ODBC,设计专用的数据库连接规范JDBC(JAVA Database Connectivity)。目标是让Java开发人员在编写数据库应用程序时,可以有统一的接口,不依赖特定数据库API,达到"一次开发,适用所有数据库"。
JDBC标准中,把驱动程序分为四种类型:
Type1:JDBC-ODBC BridgeDriver(JDBC-ODBC桥)
SUN发布了JDBC-ODBC的桥连接驱动,利用现成的ODBC架构,将JDBC调用转换为ODBC调用,再由ODBC调用本地数据库驱动代码(数据库厂商提供的数据库操作DLL。如oracle for windows中就是 oci dll文件),如下图:
其特点:不适合intranet/internet的应用方面
Type 2:Native API Driver(本地API驱动)
这类驱动程序会直接调用数据库提供的原生链接库或客户端,因为没有中间过程,访问速度通常表现良好。
其特点:需要在客户端加载数据库DLL,也不适合internet
Type 3: JDBC-Net Driver(网络协议驱动)
这类驱动程序将JDBC调用转换为独立于数据库的协议,然后再通过特定的中间组件或服务器转换为数据库通信协议,主要目的是为了获得更好的架构灵活性。
例如更换数据库时可通过更换中间组件实现,JDBC领域这种类型驱动并不常见,而微软的ADO.NET是这种架构的典型。如下图:
其特点:适合应用程序需要同时连接多个不同类的数据库,且要求并发连接高的。
Type4:Native Protocol Driver(本地协议驱动)
开发中使用的驱动jar包基本都属于此类,通常由数据库厂商直接提供,例如mysql-connector-java,驱动程序把JDBC调用转换为数据库特定的网络通信协议。如下图:
上图是最常见的驱动程序类型,其特点:应用程序可以直接和数据库服务器通讯,执行效率是非常高的。适合应用程序连接单一数据库场景。