jdbc是如何工作的

jdbc是如何工作的,jdbc,communication,database,Jdbc,Communication,Database,谁能告诉我jdbc是如何工作的?它是如何与DBMS通信的?因为DBMS可以用其他编程语言编写。来自: 类型 大多数数据库系统都支持ODBC(开放数据库连接或其他)。这意味着允许应用程序(例如,访问)与多个RDBMS实现一起工作,而代价是性能下降。当JDBC首次发布时,有一个驱动程序允许您连接到ODBC提供程序。后来,一些供应商提供了特定于其RDM的JDBC驱动程序 从开发人员的角度来看,JDBC被用作一组接口。所有实际细节都隐藏在加载驱动程序中。驱动程序是一个Java类,可以使用本书中的任何技巧

谁能告诉我jdbc是如何工作的?它是如何与DBMS通信的?因为DBMS可以用其他编程语言编写。

来自:

类型


大多数数据库系统都支持ODBC(开放数据库连接或其他)。这意味着允许应用程序(例如,访问)与多个RDBMS实现一起工作,而代价是性能下降。当JDBC首次发布时,有一个驱动程序允许您连接到ODBC提供程序。后来,一些供应商提供了特定于其RDM的JDBC驱动程序

从开发人员的角度来看,JDBC被用作一组接口。所有实际细节都隐藏在加载驱动程序中。驱动程序是一个Java类,可以使用本书中的任何技巧,包括本机代码或只是将网络流量发送到RDBMS。

阅读一些关于驱动程序的信息可能会给您带来启发。

来自:

JDBC驱动程序是客户端适配器(安装在客户端) 转换来自Java程序的请求的计算机(不在服务器上) 数据库管理系统可以理解的协议。[编辑]类型

大多数关系数据库都有商业和免费的驱动程序 数据库服务器。这些驱动因素可分为以下类型之一:

  • 调用本地可用ODBC驱动程序的本机代码的类型1
  • 在客户端调用数据库供应商本机库的类型2。然后,该代码通过网络与数据库通信
  • 类型3,纯java驱动程序,与服务器端中间件对话,然后与数据库对话
  • 类型4,使用数据库本机协议的纯java驱动程序
来自维基百科:

JDBC是Java编程语言的API,它定义了客户端访问数据库的方式。它提供了查询和更新数据库中数据的方法。JDBC面向关系数据库

JDBC最早是在Java2平台标准版1.1版(J2SE)中引入的,它与JDBC到ODBC桥的参考实现一起,支持连接到JVM主机环境中任何ODBC可访问的数据源

无需太多细节,您可以将JDBC看作一个抽象层,它允许您与不同的数据库进行通信。特定于实现的细节对您是隐藏的,但是查询数据库(无论是MySQL、Oracle还是其他)的接口是相同的

这意味着,在将来,如果有一个新的数据库,某人只需要使用现有的接口。方法名称应该相同,但这些方法将包含特定数据库的特定于实现的代码。这是一种常见的软件工程模式


包含特定于实现的代码的实体称为。JDBC驱动程序提供了到数据库的连接,它还实现了将查询发送到数据库以及将结果集返回到客户端的特定协议。

与数据库的通信由JDBC驱动程序处理,这些驱动程序可以使用各种策略与数据库“对话”(从“翻译”到使用“本机”语言). 根据使用的策略,驱动程序分为4种类型。对每一项都进行详细描述:

  • JDBC-ODBC网桥通过一个或多个ODBC提供JDBC API访问 驱动程序。请注意,有些ODBC是本机的 代码,在许多情况下是本机数据库 客户端代码必须加载到每个 使用这种类型的 司机。因此,这种驱动程序是 通常在以下情况下最合适 自动安装和下载 Java技术应用程序的主要功能是 不重要。有关 JDBC-ODBC网桥驱动程序由提供 Sun,请参阅JDBC-ODBC网桥驱动程序

  • 本机API部分支持Java技术的驱动程序转换 JDBC调用客户机上的调用 用于Oracle、Sybase、Informix、DB2、, 或其他数据库管理系统。注意,就像 桥牌司机,这种类型的司机 要求输入一些二进制代码 在每个客户端计算机上加载

  • 完全支持Java技术的网络协议驱动程序 JDBCAPI调用独立于DBMS的 net协议,然后进行翻译 通过服务器连接到DBMS协议。这 net服务器中间件能够 连接其所有Java 面向许多客户的基于技术的客户 不同的数据库。具体 使用的协议取决于供应商。 一般来说,这是最灵活的 JDBCAPI替代品。很可能 此解决方案的所有供应商都将 提供适合内联网的产品 使用。为了使这些产品 他们还必须支持互联网接入 处理以下方面的附加要求: 安全,通过防火墙访问, 等等,这是网络强加的。几个 供应商正在添加JDBC 基于技术的驱动程序 现有数据库中间件产品

  • 完全支持Java技术的本机协议驱动程序 JDBC技术向网络中调用 DBMS直接使用的协议。这 允许从客户端直接调用 将计算机连接到DBMS服务器,并且是 Intranet的实用解决方案 通道因为很多协议 是数据库供应商的专利吗 它们本身将是主要来源 对于这种类型的驱动程序。几个 数据库供应商有这样的功能 进步


  • 正如我们所看到的,有各种策略可以实现互操作性,包括用Java实现给定数据库使用的网络协议(类型4)。由于其易用性(无需安装额外的东西,无需JNI)和良好的性能(现在它们的性能与type 2驱动程序一样好),type 4实际上是当今最常用的驱动程序。

    不能说我知道您问题的确切答案,但这里有一些信息可以帮助您

    这里是一个很好的起点:

    jdbcapicont
    There are commercial and free drivers available for most relational database servers. These drivers fall into one of the following types:
    Type 1 that calls native code of the locally available ODBC driver.
    Type 2 that calls database vendor native library on a client side. This code then talks to database over network.
    Type 3, the pure-java driver that talks with the server-side middleware that then talks to database
    Type 4, the pure-java driver that uses database native protocol