JDBCTemplate
- 공통적인 부분을 처리하는 영역
- 중복된 코드를 줄일 수 있다.
- static import
01. JDBCTemplate.java
1) Connection 객체를 리턴하도록 로직 구현
2) SELECT는 상관없지만, DML문 수행은 자동으로 COMMIT = AUTO COMMIT이 활성화되어있다.
예를 들어, 비즈니스 로직을 구현할 때, 1개 테이블에 INSERT, 2개 테이블에 UPDATE를 하는 하나의 트랜잭션(하나의 논리적인 작업 단위)이 있다면, 각 단계가 끝날 때마다 COMMIT이 된다.
이 때, 만약 마지막 단계에서 에러가 발생해서(UPDATE가 실패해서) ROLLBACK을 해야하는 상황에서는 이미 COMMIT 된 부분은 ROLLBACK 되지 않는다. 즉, 트랜잭션 관리하기가 어려워진다.
따라서 connection에 setAutoCommit을 (false)로 적어서 비활성화를 시킨다.
3) INSERT, UPDATE 작업이 끝나면 connection.commit(); 혹은 connection.rollback(); 작업을 하면 된다. AutoCommit을 비활성화 해놨기 때문에 명시적으로 어떤 작업을 할 것인지 직접 작성하는 것이다.
비즈니스 로직 구현에 있어서 트랜잭션 작업 단위를 수월하게 다룰 수 있다.
public static Connection getConnection(){
Connection connection = null;
}
public static void commit(Connection connection){
}
public static void rollback(Connection connection){
}
public static void close(Connection connection) {
}
public static void close(Statement statement) {
}
public static void close(ResultSet resultSet) {
}
** 같은 이름의 메소드를 가질 수 있는 이유는 매개변수의 개수가 다르거나 매개변수의 타입이 다르거나이고, 메소드 오버로딩이 되었기 때문이다.
02. MemberDao.java
- findMemberById() 메소드에 매개변수로 Connection connection을 추가
'Programming > SERVER' 카테고리의 다른 글
DAY 123. MVC2 패턴 - 게시글 목록, 페이징 (0) | 2021.12.19 |
---|---|
DAY 120. MVC2 패턴 - 회원가입 (0) | 2021.12.16 |
DAY 118. MVC2 패턴 - 인코딩, 암호화 필터 (0) | 2021.12.14 |
DAY 117. MVC2 패턴 - 로그아웃 기능 (0) | 2021.12.13 |
DAY 116. JDBC - JDBC 객체 (0) | 2021.12.12 |