JDBC 驱动程序
Java数据库连接 (JDBC)是编程语言Java的应用程序编程接口 (API),它定义了客户端如何访问任何类型的表格数据,尤其是关系数据库。它是 Oracle Corporation 的Java标准版平台的一部分。它充当Java应用程序和数据库之间的中间层接口。
JDBC 类包含在Java包Java.sql和javax.sql中。
JDBC 可帮助您编写管理这三个编程活动的Java应用程序:
- 连接到数据源,如数据库。
- 向数据库发送查询和更新语句
- 检索并处理从数据库收到的结果以回答您的查询
JDBC的结构
JDBC 驱动程序
JDBC 驱动程序是客户端适配器(安装在客户端机器上,而不是服务器上),它将来自Java程序的请求转换为 DBMS 可以理解的协议。有 4 种类型的 JDBC 驱动程序:
- Type-1 驱动程序或 JDBC-ODBC 桥接驱动程序
- Type-2 驱动程序或 Native-API 驱动程序
- Type-3 驱动程序或网络协议驱动程序
- Type-4 驱动程序或瘦驱动程序
类型 1 驱动程序
Type-1 驱动程序或 JDBC-ODBC 桥驱动程序使用 ODBC 驱动程序连接到数据库。 JDBC-ODBC 桥驱动程序将 JDBC 方法调用转换为 ODBC函数调用。 Type-1 驱动程序也称为通用驱动程序,因为它可用于连接任何数据库。
- 由于使用通用驱动程序来与不同的数据库进行交互,因此通过该驱动程序传输的数据并不那么安全。
- 需要将 ODBC 桥驱动程序安装在各个客户端计算机中。
- Type-1 驱动程序不是用Java编写的,这就是它不是可移植驱动程序的原因。
- 该驱动软件内置JDK,无需单独安装。
- 它是一个独立于数据库的驱动程序。
类型 2 驱动程序
本机 API 驱动程序使用数据库的客户端库。此驱动程序将 JDBC 方法调用转换为数据库 API 的本机调用。为了与不同的数据库进行交互,该驱动程序需要它们的本地 API,这就是为什么数据传输比 type-1 驱动程序更安全的原因。
- 驱动程序需要单独安装在各个客户端机器上
- 供应商客户端库需要安装在客户端计算机上。
- Type-2 驱动程序不是用Java编写的,这就是它不是便携式驱动程序的原因
- 它是一个依赖于数据库的驱动程序。
3 型驱动程序
网络协议驱动程序使用将 JDBC 调用直接或间接转换为特定于供应商的数据库协议的中间件(应用程序服务器)。这里所有的数据库连接驱动程序都存在于单个服务器中,因此不需要单独的客户端安装。
- Type-3 驱动程序完全用Java编写,因此它们是可移植的驱动程序。
- 不需要客户端库,因为应用程序服务器可以执行许多任务,如审计、负载平衡、日志记录等。
- 客户端计算机需要网络支持。
- 网络协议驱动程序的维护成本很高,因为它需要在中间层完成特定于数据库的编码。
- 切换工具从一个数据库切换到另一个数据库。
Type-4 驱动程序
Type-4 驱动程序也称为本机协议驱动程序。该驱动程序直接与数据库交互。它不需要任何本机数据库库,这就是它也被称为 Thin Driver 的原因。
- 不需要任何本机库和中间件服务器,因此无需客户端或服务器端安装。
- 它完全用Java语言编写,因此它们是可移植的驱动程序。
何时使用哪个驱动程序?
- 如果您正在访问一种类型的数据库,例如 Oracle、Sybase 或 IBM,则首选的驱动程序类型是 type-4。
- 如果您的Java应用程序同时访问多种类型的数据库,则类型 3 是首选驱动程序。
- 类型 2 驱动程序在类型 3 或类型 4 驱动程序对您的数据库尚不可用的情况下很有用。
- 类型 1 驱动程序不被视为部署级驱动程序,通常仅用于开发和测试目的。