ResultSet 封裝了 JDBC 查詢的結果集,本質上是一張資料表,內部維護一個指標預設指向第一行之前。
Statement.executeQuery(sql) 取得 ResultSetnext() 移動指標並檢測是否有下一行資料(回傳 true 表示有效)getXxx(index) 或 getXxx(columnName) 取得欄位值@Test
public void testResultSet() {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 1. 取得連線
conn = JDBCTools.getConnection();
// 2. 建立 Statement
stmt = conn.createStatement();
// 3. 準備 SQL
String sql = "SELECT * FROM CUSTOMERS WHERE ID = 2";
// 4. 執行查詢
rs = stmt.executeQuery(sql);
// 5. 處理結果集
while (rs.next()) {
int id = rs.getInt("ID");
String name = rs.getString("name");
String email = rs.getString("email");
Date birth = rs.getDate("birth");
System.out.println(id);
System.out.println(name);
System.out.println(email);
System.out.println(birth);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 6. 關閉資源 (工具類已封裝重載方法)
JDBCTools.release(rs, stmt, conn);
}
}
ResultSet 類似 Iterator 的 hasNext() + next() 結合體ResultSet → Statement → Connection此為 JDBC 基礎查詢操作的標準範本,實務開發中建議搭配連線池與 PreparedStatement 提升效能與安全性。