Back/JSP
DataSource 이용해 데이터베이스 연동하기
soyeon26
2022. 2. 5. 07:16
∙ 어플리케이션 실행 시 미리 ConnedtionPool 객체를 생성한 후 데이터베이스와 연결을 맺는다.
∙ 어플리케이션은 데이터베이스 연동 작업 발생 시 이 ConnectionPool 객체를 이용해 작업한다.
커넥션풀(ConnectionPool) 동작과정
1) 톰캣 컨테이너를 실행한 후 응용 프로그램을 실행한다.
2) 톰캣 컨테이너 실행 시 ConnectionPool 객체를 생성한다.
3) 생성된 거넥션 객체는 DBMS와 연결한다.
4) 데이터베이스와 연동 작업이 필요할 경우 응용 프로그램은 ConnectionPool에서 제공하는 메소드를 호출하여 연동한다.
JNDI ( Java Naming and Directory Interface )
실제 웹 어플리케이션에서 ConnectionPoll 객체를 구현할 때는 Java SE에서 제공하는 javax.sql.Datasource 클래스를 이용한다.
JNDI란 필요한 자원을 키/값 쌍으로 저장한 후 필요할 때 키를 이용해 값을 얻는 방법이다.즉, 미리 접근할 자원에 키를 지정한 후 어플리케이션이 실행중일 때 이 키를 이용해 자원에 접근해서 작업하는 것
톰캣 컨테이너가 ConnectionPool 객체를 생성하면 이 객체에 대한 JNDI 이름(key)을 미리 설정해 놓는다.그러면 웹 어플리케이션에서 데이터베이스와 연동 작업을 할 때 이 JNDI 이름으로 접근하여 작업한다.
톰캣의 DataSource 설정 및 사용 방법
1) tomcat-dbcp 복붙하기
2) context.xml에 Resoucre 설정
<Resource
name="jdbc/oracle"
auth="Container"
type="javax.sql.DataSource"
driverClassName = "oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:xe"
username="scott"
password="tiger"
maxActive="50"
maxWait="-1"
/>