Java通过JDBC获取查询结果集的核心是用PreparedStatement执行executeQuery()得ResultSet,再用while(rs.next())遍历,调getString等方法按名或序号取值,最后用try-with-resources自动关闭资源。

Java 通过 JDBC 获取查询结果集,核心是执行 SQL 查询后,用 ResultSet 对象遍历和读取数据。关键步骤包括:获取连接、创建语句、执行查询、处理结果集。
1. 执行查询并获取 ResultSet
使用 Statement 或更推荐的 PreparedStatement(防 SQL 注入、支持参数)执行 executeQuery() 方法,返回 ResultSet:
String sql = "SELECT id, name, age FROM user WHERE age > ?";
try (Connection conn = DriverManager.getConnection(url, user, pwd);
PreparedStatement ps = conn.prepareStatement(sql)) {
ps.setInt(1, 18);
ResultSet rs = ps.executeQuery(); // ✅ 返回结果集
// 后续处理 rs
}
2. 遍历结果集(逐行移动游标)
ResultSet 的游标初始在第一行之前,必须先调用 next() 移动到第一行。每次调用 next() 返回 true 表示还有数据:
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
-
rs.next()—— 移动到下一行,返回boolean - 通常用
while (rs.next()) { ... }循环读取所有行 - 不能倒退(除非使用可滚动结果集,如
ResultSet.TYPE_SCROLL_INSENSITIVE)
3. 从当前行读取列值
在调用 next() 成功后,用 getXXX() 方法按列名或列序号获取值:
-
rs.getString("name")或rs.getString(2)(第 2 列) - 列名不区分大小写,但建议与数据库定义一致
- 推荐用列名——更易读、不受 SQL 中 SELECT 字段顺序影响
- 注意空值:用
rs.wasNull()判断刚读取的字段是否为NULL
4. 关闭资源(避免内存泄漏)
ResultSet、Statement、Connection 都需显式关闭。推荐用 try-with-resources 自动管理:
- 即使发生异常,资源也会被自动释放
- 关闭顺序无严格要求,但习惯上按打开逆序(rs → stmt → conn)
- 若手动关闭,需对每个对象判空再调用
close()
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










