第五节 JDBC驱动程序类型

JDBC驱动程序是什么?

JDBC驱动程序在JDBC API中实现定义的接口,用于与数据库服务器进行交互。

例如,使用JDBC驱动程序,可以通过发送SQL或数据库命令,然后使用Java接收结果来打开数据库连接并与数据库进行交互。

JDK附带的Java.sql包包含各种类,其类的行为被定义,实现在第三方驱动程序中完成。 第三方供应商在其数据库驱动程序中实现java.sql.Driver接口。

JDBC驱动程序类型

JDBC驱动程序实现因Java运行的各种操作系统和硬件平台而异。 Sun将实现类型分为四种类型,分别为1,2,3和4类型,如下所述:

类型1:JDBC-ODBC桥驱动程序

在类型1驱动程序中,JDBC桥接器用于访问安装在每台客户机上的ODBC驱动程序。 使用ODBC需要在系统上配置表示目标数据库的数据源名称(DSN)。

当Java第一次出现时,这是一个驱动程序,因为大多数数据库仅支持ODBC访问,但现在这种类型的驱动程序仅推荐用于实验性使用或没有其他替代方案时使用。

JDK 1.2附带的JDBC-ODBC桥接是这种驱动程序的一个很好的例子。

类型2:JDBC本地API

在类型2驱动程序中,JDBC API调用将转换为本地C/C++ API调用,这是数据库唯一的。 这些驱动程序通常由数据库供应商提供,并以与JDBC-ODBC桥接相同的方式使用。 必须在每个客户机上安装供应商特定的驱动程序。

如果要更改数据库,则必须更改原生API,因为它特定于数据库,并且现在大部分已经过时,但是使用类型2驱动程序实现了一些扩展功能的开发,它消除了ODBC的开销。

Oracle调用接口(OCI)驱动程序是类型2驱动程序的示例。

类型3:JDBC-Net纯Java

在类型3驱动程序中,使用三层方法访问数据库。 JDBC客户端使用标准网络套接字与中间件应用程序服务器进行通信。 套接字信息随后由中间件应用服务器转换成DBMS所需的调用格式,并转发到数据库服务器。

这种驱动程序是非常灵活的,因为它不需要在客户端上安装代码,一个驱动程序实际上可以提供多个数据库的访问。

可以将应用程序服务器视为JDBC"代理",它会调用客户端应用程序。 因此,我们需要了解应用程序服务器的配置,才能有效地使用此驱动程序类型。

应用程序服务器可能会使用类型1,2或4驱动程序与数据库通信,了解细微差别对理解JDBC是有帮助的。

类型4:100%纯Java

在类型4驱动程序中,基于纯Java的驱动程序通过套接字连接与供应商的数据库直接通信。 这是数据库可用的最高性能驱动程序,通常由供应商自己提供。

这种驱动是非常灵活的,不需要在客户端或服务器上安装特殊的软件。 此外,这些驱动程序可以动态下载。

MySQL Connector/J驱动程序是类型4 驱动程序。 由于其网络协议的专有性质,数据库供应商通常提供类型4驱动程序。

应该使用哪个驱动程序?

如果您正在访问一种类型的数据库,例如Oracle,Sybase或IBM DB2,则首选驱动程序类型为类型4。

如果Java应用程序同时访问多种类型的数据库,则类型3是首选驱动程序。

类型2 驱动程序在数据库不可用的类型3 或类型4驱动程序的情况下使用。

类型1驱动程序不被视为部署级驱动程序,通常仅用于开发和测试目的。

相关推荐
脚本自动化开发5 小时前
玩影之刃零,两张四千元级显卡怎么挑
后端
OceanRoy6 小时前
数据库表的设计
数据库·内连接·外连接·er图·表的约束·三大范式·多表连接
Pniubi7 小时前
怎么排查慢SQL,怎么解决?
java·数据库·sql
薛之谦_8 小时前
Java 全栈知识体系:从 IDEA 高效开发到 JVM、并发与 Stream 实战
java·jvm·intellij-idea
用户47949283569158 小时前
从一句话或代码仓到可交互 HTML:开源 Agent 画图技能 Archify v3.2 实测与选型边界
前端·后端·面试
努力的小雨9 小时前
别再复制日志给AI了!我让Codex自己去观测云查报错
后端
Decay__11 小时前
VMware 安装 SQL Server 双节点 AlwaysOn 可用性组教程 —— WSFC、AG 与侦听器完整部署(系列核心篇)
运维·数据库·sql·mysql·架构
afumu11 小时前
Go 写一个只监听 127.0.0.1 的控制服务:鉴权、白名单、危险命令拦截
后端·安全·go
茶栀(*´I`*)12 小时前
SQL 性能分析:从慢查询日志到执行计划的完整定位方法
数据库·sql
文丑颜不良啊12 小时前
LeetCode2761~2780题目解析
java·leetcode