개발/JSP
Connection을 제공해 주는 ConnectionProvider
까망군
2011. 10. 31. 11:49
JDBC API를 이용해서 DB 프로그래밍을 하려면 다음과 같이 Connection 객체를 먼저 생성해 준다.
DB 연동이 필요한 모든 코드에서 DriverManager.getConnection() 메서드를 사용해서 Connection 객체를 구할 경우 JDBC URL, 사용자 아이디, 암호가 모든 코드에서 중본된다. 만약 JDBC URL을 변경해야 한다거나 커넥션 풀 구현 방식을 변경해야 할 경우 모든 코드에서 DriverManager.getConnection() 부분을 수정해 주어야 하는 부담이 발생할 수 있다. 또한, DriverManager.getConnection()을 직접 실행할 경우 테스트 용 JDBC URL과 실제 운영 환경 용 JDBC URL을 변경해 주기가 쉽지 않다는 문제도 있다.
이런 이유로 DriverManager.getConnection()을 직접 호출해서 Connection 객체를 구하기 보다는 Connection을 제공해 주는 기능을 별도의 클래스로 분리해 주는 것이 개발이나 유지 보수 하는 데 장점을 갖는다.
WEB-INF\src\kame\jdbc\connection\ConnectionProvider.java
Connection conn = null;
try {
conn = DriverManager.getConnection(jdbcUrl, userId, userPassword);
...
DB 연동이 필요한 모든 코드에서 DriverManager.getConnection() 메서드를 사용해서 Connection 객체를 구할 경우 JDBC URL, 사용자 아이디, 암호가 모든 코드에서 중본된다. 만약 JDBC URL을 변경해야 한다거나 커넥션 풀 구현 방식을 변경해야 할 경우 모든 코드에서 DriverManager.getConnection() 부분을 수정해 주어야 하는 부담이 발생할 수 있다. 또한, DriverManager.getConnection()을 직접 실행할 경우 테스트 용 JDBC URL과 실제 운영 환경 용 JDBC URL을 변경해 주기가 쉽지 않다는 문제도 있다.
이런 이유로 DriverManager.getConnection()을 직접 호출해서 Connection 객체를 구하기 보다는 Connection을 제공해 주는 기능을 별도의 클래스로 분리해 주는 것이 개발이나 유지 보수 하는 데 장점을 갖는다.
WEB-INF\src\kame\jdbc\connection\ConnectionProvider.java
package kame.jdbc.connection; import java.sql.Connection; import java.sql.DriverManager; import java.sqlSQLException; public class ConnectionProvider { public static Connection getConnection() throws SQLException{ return DriverManager.getConnection( "jdbc:apache:commons:dbcp:/guestbook"); } }