Java 中的 JDBC | Java 数据库连接

2025 年 4 月 21 日 | 阅读 5 分钟

JDBC 代表 Java 数据库连接。JDBC 是一个 Java API,用于连接数据库、执行查询和处理结果。它是 JavaSE (Java 标准版) 的一部分。JDBC API 使用 JDBC 驱动程序连接数据库。JDBC 驱动程序有四种类型

  • JDBC-ODBC 桥接驱动程序
  • 原生驱动程序
  • Network Protocol 驱动程序
  • 精简驱动程序

我们在下一章讨论了以上四种驱动程序。

我们可以使用 JDBC API 来访问存储在任何关系数据库中的表式数据。借助 JDBC API,我们可以从数据库中保存、更新、删除和检索数据。它类似于 Microsoft 提供的开放数据库连接 (ODBC)。

JDBC (Java Database Connectivity)

JDBC 的当前版本是 4.3。它是自 2017 年 9 月 21 日起发布的稳定版本。它基于 X/Open SQL 调用级接口。java.sql 包包含 JDBC API 的类和接口。下面列出了一些 JDBC API 的常用接口

  • Driver 接口
  • Connection 接口
  • Statement 接口
  • PreparedStatement 接口
  • CallableStatement 接口
  • ResultSet 接口
  • ResultSetMetaData 接口
  • DatabaseMetaData 接口
  • RowSet 接口

下面列出了一些 JDBC API 的常用

  • DriverManager 类
  • Blob 类
  • Clob 类
  • Types 类

为什么我们应该使用 JDBC?

在 JDBC 之前,ODBC API 是用于连接数据库、执行查询的数据库 API。但是 ODBC API 使用用 C 语言编写的 ODBC 驱动程序 (即平台相关且不安全)。这就是为什么 Java 定义了自己的 API (JDBC API),它使用用 Java 语言编写的 JDBC 驱动程序。

我们可以使用 JDBC API 来处理 Java 程序中的数据库,并可以执行以下活动:

  1. 连接到数据库
  2. 向数据库执行查询和更新语句
  3. 检索从数据库收到的结果。
你知道吗
  • 如何使用 JDBC 将 Java 应用程序连接到 Oracle 和 MySQL 数据库?
  • Statement 和 PreparedStatement 接口之间有什么区别?
  • 如何使用 JDBC 打印数据库中表的总数和视图的总数?
  • 如何使用 JDBC 将图像存储在 Oracle 数据库中并检索它们?
  • 如何使用 JDBC 将文件存储在 Oracle 数据库中并检索它们?

什么是 API?

JDBC 还支持处理数据库元数据,这使我们能够检索有关数据库的信息,例如其表、列和索引。我们可以使用 **DatabaseMetaData** 接口获取这些信息,这对于动态生成 SQL 查询或数据库模式内省非常有用。

JDBC 的另一个重要特性是它支持批处理,允许我们将多个 SQL 语句分组到一个批次中并一起执行。通过减少应用程序和数据库之间的往返次数,可以提高性能。



Java JDBC 选择题

1. 对于运行在客户端-服务器架构中的 Web 应用程序,其中驱动程序直接与数据库服务器通信,哪种 JDBC 驱动程序类型最合适?

  1. JDBC-ODBC 桥接驱动程序
  2. 原生驱动程序
  3. Network Protocol 驱动程序
  4. 精简驱动程序
 

答案:D

解释: 精简驱动程序 (Type 4) 最适合 Web 应用程序,其中 Java 代码在客户端运行,并直接通过网络与数据库服务器通信。它是平台独立的,不需要任何本地数据库库,这使其成为在各种环境中部署 Java 应用程序的理想选择。


2. JDBC 中的哪个接口提供了有关数据库的元数据,例如其表、视图和支持的 SQL 语法?

  1. ResultSetMetaData
  2. DatabaseMetaData
  3. RowSet
  4. 类型
 

答案:B

解释: JDBC 中的 DatabaseMetaData 接口提供了获取数据库元数据的方法,包括有关其表、视图、列、过程和支持的 SQL 语法的信息。这些元数据对于构建动态且灵活的数据库应用程序至关重要。


3. 使用 PreparedStatement 而不是 Statement 在 JDBC 中的主要优势是什么?

  1. 更好的性能
  2. 执行 DDL 语句的能力
  3. 提高防止 SQL 注入攻击的安全性
  4. 支持批处理
 

答案:C

解释: JDBC 中的 PreparedStatement 通过自动转义输入参数来提高安全性,从而防止 SQL 注入攻击。它还为重复执行 SQL 语句提供了更好的性能,并支持批处理,但其主要优势是安全性。


4. JDBC 中的哪个类用于管理 JDBC 驱动程序列表并建立数据库连接?

  1. 驱动程序管理器
  2. Blob
  3. Clob
  4. 类型
 

答案:A

解释: JDBC 中的 DriverManager 类管理数据库驱动程序的列表,并建立 Java 应用程序与一个或多个数据库之间的连接。它在运行时动态加载 JDBC 驱动程序,并根据提供的 URL 处理到相应数据库的连接。


5. JDBC 中 ResultSet 接口的哪个方法用于将光标移动到下一行并检索其数据?

  1. nextRow()
  2. fetchNext()
  3. moveToNext()
  4. next()
 

答案:D

解释: ResultSet 接口的 next() 方法将光标移动到结果集的下一行,如果存在下一行则返回 true,否则返回 false。它与 getInt()、getString() 等方法结合使用,以从当前行检索列值。


下一主题Jdbc 驱动程序