У меня есть метод получения пользователей из базы данных с помощью JDBC:
public List getUser(int userId) {
String sql = "SELECT id, name FROM users WHERE id = ?";
List users = new ArrayList();
try {
Connection con = DriverManager.getConnection(myConnectionURL);
PreparedStatement ps = con.prepareStatement(sql);
ps.setInt(1, userId);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
users.add(new User(rs.getInt("id"), rs.getString("name")));
}
rs.close();
ps.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
return users;
}
Как использовать Java 7 try-with-resources для улучшения этот код?
Я пробовал использовать приведенный ниже код, но он использует много блоков try
и не сильно улучшает читаемость . Должен ли я использовать try-with-resources
по-другому?
public List getUser(int userId) {
String sql = "SELECT id, name FROM users WHERE id = ?";
List users = new ArrayList<>();
try {
try (Connection con = DriverManager.getConnection(myConnectionURL);
PreparedStatement ps = con.prepareStatement(sql);) {
ps.setInt(1, userId);
try (ResultSet rs = ps.executeQuery();) {
while(rs.next()) {
users.add(new User(rs.getInt("id"), rs.getString("name")));
}
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return users;
}