使用 Statement.executeQuery 方法从表中检索数据
要使用不带参数标记的 SELECT 语句从表中检索数据,可以使用 Statement.executeQuery 方法。
关于本任务
此方法返回 ResultSet 对象中的结果表。 获取结果表之后,需要使用 ResultSet 方法来移动结果表,并从每一行获取各个列值。
使用 IBM® Data Server Driver for JDBC and SQLJ ,您还可以使用 Statement.executeQuery 方法从存储过程调用中检索结果集(如果该存储过程仅返回一个结果集)。 如果存储过程返回多个结果集,那么需要使用 Statement.execute 方法。
本主题讨论最简单类型的 ResultSet,它是只读 ResultSet,您在其中一次只能向前移动一行。 IBM Data Server Driver for JDBC and SQLJ 还支持可更新和可滚动 ResultSet秒。
过程
要使用不带参数标记的 SELECT 语句从表中检索行,您需要执行下列步骤:
- 调用 Connection.createStatement 方法创建一个 Statement 对象。
- 调用 Statement.executeQuery 方法,从 ResultSet 对象中的SELECT语句获取结果表。
- 在循环中,使用 next 方法定位光标,并使用 getXXX 方法从 ResultSet 对象的当前行的每一列中检索数据。
XXX代表一种数据类型。 - 调用 ResultSet.close 方法关闭 ResultSet 对象。
- 当您使用完 Statement 对象后,请调用 Statement.close 方法关闭该对象。
示例
String empNo;
Connection con;
Statement stmt;
ResultSet rs;
…
stmt = con.createStatement(); // Create a Statement object 1
rs = stmt.executeQuery("SELECT EMPNO FROM EMPLOYEE"); 2
// Get the result table from the query
while (rs.next()) { // Position the cursor 3
empNo = rs.getString(1); // Retrieve only the first column value
System.out.println("Employee number = " + empNo);
// Print the column value
}
rs.close(); // Close the ResultSet 4
stmt.close(); // Close the Statement 5