// 这段代码让我第一次感受到数据的流动 Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM students");
// 这个简单的循环教会了我数据的节奏感 while(rs.next()) {
String name = rs.getString("student_name");
System.out.println("当前学生:" + name);
}
// 合理的fetchSize设置改变了数据获取的节奏 Statement stmt = conn.createStatement(); stmt.setFetchSize(100); ResultSet rs = stmt.executeQuery("SELECT * FROM large_table");
public User findUserById(int userId) {
String sql = "SELECT user_id, username, email, create_time FROM users WHERE user_id = ?";
try (PreparedStatement pstmt = connection.prepareStatement(sql)) {
pstmt.setInt(1, userId);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
User user = new User();
user.setId(rs.getInt("user_id"));
user.setUsername(rs.getString("username"));
user.setEmail(rs.getString("email"));
user.setCreateTime(rs.getTimestamp("create_time"));
return user;
}
} catch (SQLException e) {
logger.error("查询用户失败", e);
}
return null;
}
// 老方法 - 繁琐且容易出错 PreparedStatement pstmt = null; ResultSet rs = null; try {
pstmt = connection.prepareStatement(sql);
rs = pstmt.executeQuery();
// 处理结果集
} finally {
if (rs != null) try { rs.close(); } catch (SQLException e) { /* 记录日志 */ }
if (pstmt != null) try { pstmt.close(); } catch (SQLException e) { /* 记录日志 */ }
}
// 新方法 - 简洁安全 try (PreparedStatement pstmt = connection.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery()) {
// 处理结果集
}
你可能想看: