zoukankan      html  css  js  c++  java
  • JDBC 学习笔记(二)—— 详解 JDBC 的四种驱动类型

    JDBC 有四种驱动类型,分别是:

    • JDBC-ODBC 桥(JDBC-ODBC bridge driver plus ODBC driver)
    • 本地 API 驱动(Native-API partly Java driver)
    • 网络协议驱动(JDBC-Net pure Java driver)
    • 本地协议驱动(Native-protocol pure Java driver)

    1. JDBC-ODBC 桥

    从名称之中就可以知道,这种驱动是 JDBC 在 ODBC 已有的功能上做了一层适配工作,即搭桥(Bridge)。

    这种驱动完全依赖 ODBC 的实现,JDBC 只是做了一层封装工作。

    JDBC-ODBC 桥最主要的功能,是支持 Java 访问 Access 这种伪关系型数据库。

    JDBC-ODBC 桥最大的优点在于:ODBC 的代码在天然的在许多使用数据库的客户端上有,所以这种驱动的安装十分便捷。

    但是,JDBC-ODBC 桥有以下两个主要的缺点:

    • 由于对 ODBC 的依赖,导致支持的功能有限,性能不佳,扩展能力很弱。
    • 不适合在并发访问数据库的情况下使用。

    在 Java8 的实现中,已经删除了 JDBC-ODBC 桥这种驱动方式。

    2. 本地 API 驱动

    这种驱动方式,相当于 JDBC 完全使用了 ODBC 的工作方式。

    在这种驱动中,JDBC调用转换为对 DBMS 的客户端 API 的调用。

    JDBC-ODBC 桥的驱动方式,等于是对所有的数据库调用进行了一次整合;而本地 API 驱动则是绕过了 ODBC,对数据库 API 的调用进行了整合。

    所以这种驱动方式的效率,相比第一种驱动,会有显著的提高。

    然而,与 JDBC-ODBC 桥驱动相同,对客户端数据库的 API 有依赖,所以也不适合基于 Internet 的应用。

    3. 网络协议驱动

    这种驱动方式,适用于基于 Internet 的应用,它依赖于一个网络服务器上的中间产品:

    • 首先,将 JDBC 调用转化为一个 DBMS 无关的网络协议,传递给中间服务器。
    • 然后,中间服务器负责将这种请求,转化为符合相应的数据库规范的请求,转发给数据库服务器。

    这种驱动是基于 Server 端的,所以不需要在客户端加载数据库厂商的代码库。

    它在在执行效率,可升级性,灵活性方面都很好。

    这种驱动,设计的代码量很小,可以很快地加载到内存当中。

    但是,这种驱动在中间件层仍然需要有配置其它数据库驱动程序,而且增加了一个中间层去传递数据,执行效率还不是最好。

    同时,基于 Internet 的访问要求,客户端必须处理 Web 所提出的安全性、通过防火墙的访问等方面的额外要求。

    4. 本地协议驱动

    这种驱动程序将 JDBC 调用直接转换为 DBMS 使用的网络协议。

    这种驱动允许从客户端机器直接调用 DBMS 服务器,是内部网(Intranet)访问的优秀解决方案。

    由于许多这样的协议都是专用的,因此数据库提供者自己将是主要来源。

    5. 总结

    • JDBC-ODBC 桥,适合作为开发应用时的一种过度方案,不使用大量的数据库操作。
    • 本地 API 驱动,只适用于内部网,但是执行效率不高,所以一般也不采用。
    • 网络协议驱动,适用于需要同时连接多个不同种类的数据库的应用。
    • 本地协议驱动,适合于连接单一数据库的应用。

    从执行效率来讲,第3、4型的驱动是首选,平时通过加载一个 jar 包来达到连接数据库目的的,是第4型驱动。

  • 相关阅读:
    IList扩展
    WPF 路由事件
    WPF 属性值绑定、转换
    WPF 生命周期
    App.config 动态编辑
    Oracle Package的全局变量与Session
    AES对数据进行加密与解密
    OracleAES加密
    AES加解密程序的实现
    Oracle的AES加密与解密用法
  • 原文地址:https://www.cnblogs.com/jing-an-feng-shao/p/9219828.html
Copyright © 2011-2022 走看看