토비의 스프링 3.1 책을 읽으며 일부분을 정리한 내용입니다. 
개념 이해를 위한 내용들 중 일부분을 정리했으므로 이해를 돕기위한 예시 코드들 및 자세한 전체적인 내용은 책을 통해 확인하시길 바랍니다.
포스팅 내용이 저작권의 문제가 발생할 경우 게시물은 바로 삭제/비공개 처리됩니다.

템플릿 

일정한 패턴으로 유지되는 특성을 가진 부분을 자유롭게 변경되는 성질을 가진 부분으로부터 독립시켜서 효과적으로 활용할 수 있도록 하는 방법

 

예외처리 기능을 갖춘  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() 함수 사용여부가 달라지므로 이를 주의해야한다.

 

 

 

+ Recent posts