개발/JSP

Connection을 제공해 주는 ConnectionProvider

까망군 2011. 10. 31. 11:49
JDBC API를 이용해서 DB 프로그래밍을 하려면 다음과 같이 Connection 객체를 먼저 생성해 준다.

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");
	}
}