简述 JDBC API 的工作过程和主要类/接口的功能。
时间: 2025-06-23 17:25:19 浏览: 5
### JDBC API 工作原理
JDBC(Java Database Connectivity)API 是一系列接口,旨在提供一种标准方式让 Java 应用程序能够与各种关系型数据库交互。这些接口位于 `java.sql` 和 `javax.sql` 包下[^1]。
#### 建立连接
为了使应用程序能访问特定的数据库,需加载相应的驱动程序并通过 `DriverManager.getConnection()` 方法建立到目标数据库的实际物理连接。此过程中通常会指定 URL、用户名和密码等必要参数:
```properties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=1234
```
上述配置指定了 MySQL 数据库的相关信息,并设置了字符编码以确保数据传输准确性[^3]。
#### 执行 SQL 语句
一旦建立了有效的数据库连接,则可通过该连接创建 `Statement`, `PreparedStatement` 或者 `CallableStatement` 对象来执行不同的 SQL 操作。其中:
- **PreparedStatement**: 支持预编译 SQL 语句,在处理含有变量的数据时更为安全有效,有助于防止 SQL 注入攻击;
- **CallableStatement**: 特定于调用存储过程或函数,允许传递 IN, OUT 参数并获取返回结果[^2].
对于查询类型的 SQL 语句 (`SELECT`) ,应使用 `executeQuery()` 方法获得 `ResultSet` 结果集;而对于更新性质的操作 (如 INSERT, UPDATE, DELETE),则应该采用 `executeUpdate()` 来完成相应任务[^4]。
#### 处理结果集
当成功执行了一个 SELECT 类型的 SQL 后,将会得到一个 `ResultSet` 实例作为响应。这个对象包含了所有满足条件记录的信息,可以逐行遍历读取每一列的具体数值。值得注意的是,只有通过 `executeQuery()` 发起请求才会返回此类实例:
```java
try {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT id, name FROM users");
while(rs.next()){
int userId = rs.getInt("id");
String userName = rs.getString("name");
System.out.println("User ID:" + userId);
System.out.println("Name:" + userName);
}
} catch(SQLException e){
// Handle exceptions...
}
finally{
if(conn != null && !conn.isClosed())
try{conn.close();}catch(Exception finalExc){}
}
```
以上代码片段展示了如何利用 `ResultSet` 获取来自 "users" 表中的两列 ("id", "name") 并打印出来。
阅读全文
相关推荐


















