jdbc是如何工作的

问题描述 投票:11回答:7

任何人都可以告诉我jdbc如何工作?它如何设法与DBMS通信?因为DBMS可能用其他编程语言编写。

jdbc communication database
7个回答
9
投票

与数据库的通信由JDBC驱动程序处理,JDBC驱动程序可以使用各种策略与数据库“对话”(从“翻译”到使用“本机”语言)。根据所使用的策略,驱动程序分为4种类型。 Types of JDBC technology drivers提供了对每个人的良好描述:

  1. JDBC-ODBC桥通过一个或多个ODBC驱动程序提供JDBC API访问。请注意,必须在使用此类驱动程序的每台客户端计算机上加载某些ODBC本机代码,并且在许多情况下必须加载本机数据库客户端代因此,当Java技术应用程序的自动安装和下载不重要时,这种驱动程序通常是最合适的。有关Sun提供的JDBC-ODBC桥驱动程序的信息,请参阅JDBC-ODBC Bridge Driver。
  2. 本机API部分支持Java技术的驱动程序将JDBC调用转换为Oracle,Sybase,Informix,DB2或其他DBMS的客户端API上的调用。请注意,与桥驱动程序一样,此样式的驱动程序要求在每台客户端计算机上加载一些二进制代码。
  3. 支持完全支持Java技术的网络协议驱动程序将JDBC API调用转换为独立于DBMS的网络协议,然后由服务器将其转换为DBMS协议。此网络服务器中间件能够将其所有基于Java技术的客户端连接到许多不同的数据库。使用的具体协议取决于供应商。通常,这是最灵活的JDBC API替代方案。该解决方案的所有供应商都可能提供适合Intranet使用的产品。为了使这些产品也支持Internet访问,它们必须处理Web强加的安全性,通过防火墙访问等的附加要求。一些供应商正在为其现有的数据库中间件产品添加基于JDBC技术的驱动程序。
  4. 本机协议完全支持Java技术的驱动程序将JDBC技术调用直接转换为DBMS使用的网络协议。这允许从客户端机器到DBMS服务器的直接调用,并且是Intranet访问的实用解决方案。由于许多这些协议都是专有的,因此数据库供应商本身将成为这种驱动程序的主要来源。一些数据库供应商正在进行中。

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


7
投票

来自Wikipedia

JDBC驱动程序是客户端适配器(安装在客户端计算机上,而不是安装在服务器上),用于将请求从Java程序转换为DBMS可以理解的协议。 [编辑]类型

大多数关系数据库服务器都有商业和免费驱动程序。这些驱动程序属于以下类型之一:

  • 键入1,调用本地可用的ODBC驱动程序的本机代码。
  • 类型2,在客户端调用数据库供应商本机库。然后,此代码通过网络与数据库通信。
  • 类型3,纯Java驱动程序,与服务器端中间件进行通信,然后与数据库进行通信
  • Type 4,使用数据库本机协议的纯java驱动程序

2
投票

大多数数据库系统都支持ODBC(开放式数据库连接或其他)。这意味着允许应用程序(例如,Access)以牺牲一些性能为代价来使用多个RDBMS实现。首次发布JDBC时,有一个驱动程序允许您连接到ODBC提供程序。稍后,一些供应商提供了特定于其RDMS的JDBC驱动程序。

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


1
投票

来自wikipedia page

类型

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

1
投票

阅读一下有关four types of JDBC drivers的信息可能会启发你。


1
投票

来自维基百科:

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

JDBC首先在Java 2平台标准版1.1版(J2SE)中引入,并与JDBC-to-ODBC桥接器一起引用,从而实现与JVM主机环境中任何ODBC可访问数据源的连接。

在不深入细节的情况下,您可以将JDBC视为一个抽象层,让您可以与不同的数据库进行通信。特定于实现的细节对您是隐藏的,但查询数据库(无论是MySQL还是Oracle或其他)的接口是相同的。

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

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


0
投票

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

这是一个很好的起点:

http://java.sun.com/products/jdbc/overview.html

JDBC API包含两组主要的接口:第一组是应用程序编写者的JDBC API,第二组是驱动程序编写者的低级JDBC驱动程序API。

JDBC驱动程序开发人员的信息。基本上,开发人员实现了一组接口,以便为特定的DBMS创建JDBC驱动程序。

http://java.sun.com/products/jdbc/driverdevs.html

至于DBMS是用不同的语言编写的。 DBMS最有可能暴露一些API(以各种语言和/或格式),允许驱动程序(如JDBC)与DBMS通信。

© www.soinside.com 2019 - 2024. All rights reserved.