반응형
JDBC
- 자바 API로, 자바에서 DB에 접근할 수 있도록 한다.
JDBC는 대표적으로 아래 3가지 기능을 표준 인터페이스로 정의해서 제공한다.
1. java.sql.Connection - 연결
2. java.sql.Statement - SQL 전달
3. java.sql.ResultSet - 결과 응답
JDBC 기술 덕분에 많은 것이 편리해지긴 했지만, 각 DB마다 일부 SQL이 다르기 때문에
JDBC 코드를 변경하지 않더라도 SQL을 변경해야될 경우가 생긴다.
복잡한 JDBC 기술을 편리하게 사용해주는 방법으로 SQL Mapper 기술과 ORM기술이 있다.
SQL Mapper 기술에는 JdbcTemplate, MyBatis가 있고 ORM 기술로는 JPA가 있다.
사용 예시
더보기
public Member save(Member member) throws SQLException {
String sql = "insert into member(member_id, money) values(?, ?)";
Connection con = null;
PreparedStatement pstmt = null;
try {
con = getConnection();
pstmt = con.prepareStatement(sql);
pstmt.setString(1, member.getMemberId());
pstmt.setInt(2, member.getMoney());
pstmt.executeUpdate();
return member;
} catch (SQLException e) {
log.error("db error", e);
throw e;
} finally {
close(con, pstmt, null);
}
}
커넥션 풀
커넥션을 새로 만드는 것은 과정이 복잡하고 시간도 많이 소요되는 작업니다.
고객이 어플리케이션을 사용할 때 SQL을 실행하는 시간뿐만 아니라 커넥션을 새로 만드는 시간이 추가되기 때문에 좋지 않다. 이를 위해 커넥션을 미리 만들어두고 사용하는 커넥션 풀이라는 방법이 존재한다.
* 대표적인 커넥션 풀 오픈소스는 HikariCP가 있다.
데이터소스
- 커넥션 획득 방법이 여러 가지(DriveManager를 통해 커넥션 획득 or HikariCP 사용)가 존재하기 때문에 커넥션 획득 방법을 추상화 하여 사용하는 것이 필요하다. 이것이 데이터 소스다.
---------------------------
참고 : 김영한님 스프링 DB 1편 강의
댓글