Java中执行SQL查询需用Statement的executeQuery()方法,返回ResultSet;须先通过Connection创建Statement,SQL须以SELECT开头,遍历用next()并按列名或索引读取,最后按rs→stmt→conn顺序关闭资源。

Java 中通过 Statement 执行 SQL 查询语句,核心是调用 executeQuery() 方法,它专门用于执行 SELECT 语句并返回 ResultSet 结果集。
获取 Statement 对象
必须先通过数据库连接(Connection)创建 Statement 实例:
- 使用
connection.createStatement()获取普通Statement - 确保连接已成功建立(例如通过
DriverManager.getConnection()) - 不建议手动拼接 SQL 字符串来传入查询(易引发 SQL 注入),简单示例中可接受,但生产环境应优先用
PreparedStatement
执行 SELECT 查询
调用 statement.executeQuery(sql),传入合法的查询语句字符串:
- SQL 必须是以
SELECT开头的完整语句(如"SELECT id, name FROM user") - 该方法返回
ResultSet,代表查询结果的表格形式数据 - 若执行的是非查询语句(如 INSERT/UPDATE),会抛出
SQLException
遍历和读取结果
ResultSet 默认光标位于第一行之前,需用 next() 移动到首行:
立即学习“Java免费学习笔记(深入)”;
- 用
rs.next()循环判断是否有下一行,返回true表示有数据 - 通过列名或列索引读取字段,如
rs.getString("name")或rs.getInt(1) - 注意类型匹配:
getString()可读任意类型但转为字符串;数值列推荐用对应类型方法(如getInt())
资源正确关闭
Statement 和 ResultSet 都属于系统资源,必须显式关闭:
- 按顺序关闭:先关
ResultSet,再关Statement,最后关Connection - 推荐使用 try-with-resources 语法自动管理,例如:
try (Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM user")) {
while (rs.next()) {
System.out.println(rs.getString("name"));
}
} // 自动关闭 rs 和 stmt


















