struts1.3에서 커넥션풀을 이용한 db접속

2014년 04월 06일 by 다루이.

    struts1.3에서 커넥션풀을 이용한 db접속 목차

struts1.2까지는 스트럿츠 독자적인 데이터소스가 제공되고 있었다. 스트러츠 1.3부터는 그 기능이 지원되지 않고 커넥션풀 라이브러리를 이용하는것으로 대체되었다.

 

커넥션풀이란 시간이 걸리는 데이터베이스와의 접속을 미리 해두고 생성된 커넥션 객체를 다수의 클라이언트로부터 이용되어지는 기능을 말한다. 이런 기능으로 하여금 데이터베이스 접속에 소요되는 시간과 자원을 절약하는것이 가능하게 된다.

 

그리고 접속정보의 관리란, 데이터베이스의 접속에 필요한 jdbc드라이브명, jdbc접속url, 유저명, 패스워드과 같은 정보를 일괄관리 하는기능이다. java.sql.Connection을 필요할때마다 이용하는것이 아니라, javax.sql.DataSource를 이용것으로 간단하게 데이터베이스를 활용하는것이 가능하게 된다.

 

데이터소스를 이용하는 방법으로는 다음과 같다.

 

1. 어플리케이션서버의 리소스관리를 이용하는 방법

어플리케이션서버의 JNDI기능을 이용하여 데이터소스를 작성하고, 어플리케이션으로부터 이용하는것이 가능하다. TOMCAT6부터 이용할수 있으며 그 설정은 <Resource>태그로 다음과 같은 설정파일에 기술할수 있다.

 

- conf디렉토리의 context.xml

- conf이렉토리의 server.xml

- war파일의 META-INF폴더의 context.xml

 

<Resource name="jdbc⁄mysql" description="DBCP" auth="Container" type="javax.sql.DataSource" username="유저이름" password="비밀번호" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql:⁄⁄localhost:3306⁄데이터베이스이름?autoReconnect=true" maxActive="20" maxIdle="10" maxWait="-1" logAbandoned="true" ⁄>

그리고 web.xml파일에 다음과 같이 기술한다.

 

	<resource-ref>
		<res-ref-name>jdbc⁄mysql<⁄res-ref-name>
		<res-type>javax.sql.DataSource<⁄res-type>
		<res-auth>Container<⁄res-auth>
	<⁄resource-ref>	

그리고 코드상에서 위의 res-ref-name의 jdbc/mysql을 키로 해서 jndi호출방법에 의해서 이용할수 있다.

'FW > struts1.3' 카테고리의 다른 글

[스트럿츠1.3] JNDI설정을 통한 DB접속  (0) 2014.03.02