JDBC驱动程序类型

时间:2020-02-23 14:35:18  来源:igfitidea点击:

JDBC驱动程序是一个软件组件,它允许Java应用程序与数据库进行交互。
使用JDBC驱动程序,使应用程序能够将查询发送到数据库并接收结果。

在本程序中,我们将尝试回答一些与这些jdbc驱动程序有关的简单但重要的问题,例如它们的工作方式,驱动程序的类型等等。
JDBC代表Java DataBase Connectivity。

JDBC驱动程序如何工作?

Java JDBC API(应用程序编程接口)是一组基于JavaSoft规范构建的接口。
这些接口由一组合同(或者抽象)方法组成,其实现必须同意或者必须实现才能与之兼容。
这意味着JDBC驱动程序实际上是实现这些接口的一组类。

当JDBC驱动程序遵循JavaSoft规范时,它们实际上可以访问任何数据库,使用电子表格甚至某些平面文件格式执行命令!唯一的条件是该基于SQL的数据库必须存在JDBC驱动程序。

JDBC驱动程序类型

在本节中,我们将探讨JDBC驱动程序的类型。
可是等等!我们不是说JDBC遵循规范,还是有多种类型吗?是的,规范只是告知应该做什么,而不是应该怎么做。

总体而言,JDBC驱动程序类型用于对用于连接数据库的技术进行分类。
让我们在这里看到他们每个人。

  • 类型1 –桥驱动器

类型1驱动程序称为网桥驱动程序。
这些桥驱动程序将所有JDBC查询调用转换为ODBC调用。
这是一个优点,因为开放数据库连接(ODBC)技术存在许多驱动程序,这意味着所有这些数据库也都具有Type 1驱动程序。

由于以下缺点,类型1驱动程序很少用于生产应用程序:

  • 查询速度很慢,因为它们需要先进行ODBC转换,然后再进行本机DB转换。

  • 桥驱动程序必须安装在主机应用程序上,但并非总是可能的。

  • 类型2 –本机API

类型2驱动程序称为本机驱动程序。
这些本机驱动程序将所有JDBC调用转换为本机API数据库调用。
类型2驱动程序比类型1桥驱动程序更快,因为转换直接发生在数据库操作中。
该API并非完全用Java编写的,因为它也可以访问本机数据库代码。

由于以下缺点,Type 2驱动程序很少在生产应用中使用:

  • 必须安装数据库的客户端库,但这并非总是可能的。

  • 没有多少数据库供应商提供本地客户端库。

  • 类型3 –网络协议

类型3驱动程序称为网络协议或者中间件驱动程序。
这些网络协议驱动程序将所有JDBC调用转换为特定于数据库的调用。
如果Java应用程序需要同时访问多种类型的数据库,则类型3是首选驱动程序。

由于以下优点,类型3驱动程序是生产应用程序中最常用的驱动程序:

  • Type 3 JDBC驱动程序是最灵活的JDBC驱动程序,因为它们在客户端计算机上不需要任何本机二进制代码。

  • 中间件应用程序除了可以执行JDBC逻辑(如缓存,数据库服务器上的负载平衡等)外,还可以做很多其他事情,这可以提高所有JEE应用程序的性能。

Type 3驱动程序确实也有一些缺点:

  • 应用程序的中间件层也需要一些特定于数据库的编码。
    由于它提供的灵活性,通常是一种公认的解决方案。

  • 中间件应用程序可能会增加延迟。
    但是可以通过更好的编码标准等来改善。

另外,驱动程序管理器类是完全实现的类,它将应用程序连接到由数据库URL指定的数据源。

  • 类型4 –本机协议

类型4驱动程序称为本机协议或者中间件驱动程序。
这些本机协议驱动程序将所有JDBC调用转换为直接的供应商特定的数据库调用。
Type 4驱动程序完全用Java编写,并且与平台无关。

Type 4驱动程序具有很大的优势,因为它不需要任何中间件应用程序。
因此,性能大大提高。
但是驱动程序是特定于数据库的,因此,所有供应商可能都不提供Type 4驱动程序来使用。

如何确定用于JDBC的驱动程序?

我们需要根据我们在应用程序中使用的数据库来决定这一点。

例如:

  • 如果是MySQL,我们需要使用此处提供的MySQL的jdbc驱动程序。

  • 如果是Oracle,我们可以在此处使用Oracle提供的jdbc驱动程序。

您可以在所选数据库的官方上找到JDBC驱动程序。
它取决于JDK版本以及DB版本。