스프링 JDBC
9605 단어 jdbcjdbctemplatespringjava
public Account findByNumber(String number ) {
String sql = "select * from accounts " +
"where number = ?";
Account account = null;
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = dataSource.getConnection();
ps = conn.prepareStatement(sql);
ps.setString(1, number);
rs = ps.executeQuery();
account = mapAccount(rs);
} catch (SQLException e) {
throw new RuntimeException("SQL exception occurred", e);
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException ex) { // OMG
}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException ex) { // OMG
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException ex) { // OMG
}
}
}
return account;
}
리소스로 시도하면 더 쉽게 만들 수 있지만 너무 많이는 아닙니다. 대신 Spring JdbcTemplate을 사용하여 코드를 정리하고 반복적인 상용구 코드를 제거하고 일반적인 버그를 피하고 예외를 적절하게 처리합니다.
public Account findByNumber(String number) {
String sql = "select * from accounts where number = ?";
return jdbcTemplate.query(sql, accountExtractor, number);
}
private class AccountExtractor implements ResultSetExtractor<Account> {
public Account extractData(ResultSet rs) throws SQLException, DataAccessException {
return mapAccount(rs);
}
}
Spring은 연결을 획득하고, 명령문을 실행하고, 결과 집합을 처리하고, 예외를 처리하고, 연결을 해제합니다. 단일 또는 여러 행을 쿼리할 수 있습니다. JdbcTemplate은 ResultSet의 각 행을 Map으로 반환합니다. 단일 행이 예상되면 queryForMap을 사용하고, 여러 행이 예상되면 queryForList를 사용하고, 삽입, 업데이트 또는 삭제할 때 update 메소드를 사용합니다.
public Map<String, Object> getUser(int id) {
String sql = "select * from users where id = ?";
return jdbcTemplate.queryForMap(sql, id);
}
public List<Map<String, Object>> getUsers() {
String sql = "select * from users";
return jdbcTemplate.queryForList(sql);
}
public int insertUpdateOrDeleteUser(String sql) {
return jdbcTemplate.update(sql);
}
참조Spring Framework Documentation - Data Access with JDBC
참조Spring JdbcTemplate Example
Reference
이 문제에 관하여(스프링 JDBC), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/eidher/spring-jdbc-4d3i텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)