템플릿
일정한 패턴으로 유지되는 특성을 가진 부분을 자유롭게 변경되는 성질을 가진 부분으로부터 독립시켜서 효과적으로 활용할 수 있도록 하는 방법
예외처리 기능을 갖춘 DAO
중간에 어떤 이유로든 예외가 발생했을 경우 사요하던 리소스를 무조건 반환하여 리소스 부족 문제를 막아야한다.
JDBC 코드에서는 try/catch/finally 구문을 활용해 리소스를 반환하도록 도와준다.
try/catch/finally 구문
try 구문
예외가 발생할 가능성이 있는 코드를 묶어준다.
catch 구문
예외가 발생했을 때 부가적인 작업을 해주도록 한다.
finally 구문
try 구문에서의 예외 발생 유무와 상관없이 항상 실행되는 구문이다.
책에 나온 try/catch/finally 구문 사용하여 users 테이블을 다 지우는 예시 코드
public void deleteAll() throws SQLException {
Connection c = null;
PreparedStatement ps = null;
try {
c = dataSource.getConnection();
ps = c.prepareStatement("delete from users");
ps.execute();
} catch (Exception e) {
throw e;
}finally {
if(ps != null) {
try {
ps.close();
}catch (SQLException e) {
}
}
if (c != null) {
try {
c.close();
} catch (SQLException e) {
}
}
}
}
close() 메소드 호출 시 오류 발생 시점에 따라 close() 함수 사용여부가 달라지므로 이를 주의해야한다.
'Spring > 토비의 스프링' 카테고리의 다른 글
[토비의스프링3.1] 3.5 템플릿과 콜백 (0) | 2022.02.24 |
---|---|
[토비의스프링3.1] 3.2 변하는 것과 변하지 않는 것 (0) | 2022.02.24 |
[토비의스프링3.1] 2.5 학습 테스트로 배우는 스프링 (0) | 2022.02.24 |
[토비의스프링3.1] 1.5 스프링의 IOC (0) | 2022.01.21 |
[토비의스프링3.1] 1.4 제어의 역전(IoC) (0) | 2022.01.21 |