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 설정 및 사용 방법

ConnectionPool 설정 과정

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"
    />