이클립스에서 각 DB별 커넥션 풀을 설정하는 방법. 현재는 MySQL과 Oracle 뿐이다.
우선
http://commons.apache.org/dbcp/download_dbcp.cgi
http://commons.apache.org/pool/download_pool.cgi
에서 각 파일을 다운로드 한다. 아니면 첨부한 파일을 받아도 된다.(pool은 새 버전이 나왔네요. 제가 올려놓은건 1.5.4 버전 입니다.)
다운받은 파일을 [톰캣설치폴더(이하 %TOMCATHOME%)\lib\] 에 넣어둔다.
이후 이클립스에서 "Dynamic Web Project" 를 만들었다고 가정하자.
프로젝트 이름은 'myproject'
myproject의 WEB-INF 의 lib에도 동일한 파일을 넣어둔다.
◈MySQL 의 경우.
%TOMCATHOME%\lib
와
myproject의 WEB-INF 의 lib에 MySQL JDBC 드라이버 파일을 넣어준다.
ex> mysql-connector-java-5.0.7-bin.jar
myproject의 METE-INF에 context.xml 파일을 만든후 다음과 같이 작성한다.
◈Oracle 의 경우
%TOMCATHOME%\lib
와
myproject의 WEB-INF 의 lib에 오라클 JDBC 드라이버 파일을 넣어준다.
ex> ojdbc14.jar
myproject의 METE-INF에 context.xml 파일을 만든후 다음과 같이 작성한다.
등의 형식으로 커넥션을 사용하면 된다.
우선
http://commons.apache.org/dbcp/download_dbcp.cgi
http://commons.apache.org/pool/download_pool.cgi
에서 각 파일을 다운로드 한다. 아니면 첨부한 파일을 받아도 된다.(pool은 새 버전이 나왔네요. 제가 올려놓은건 1.5.4 버전 입니다.)
다운받은 파일을 [톰캣설치폴더(이하 %TOMCATHOME%)\lib\] 에 넣어둔다.
이후 이클립스에서 "Dynamic Web Project" 를 만들었다고 가정하자.
프로젝트 이름은 'myproject'
myproject의 WEB-INF 의 lib에도 동일한 파일을 넣어둔다.
◈MySQL 의 경우.
%TOMCATHOME%\lib
와
myproject의 WEB-INF 의 lib에 MySQL JDBC 드라이버 파일을 넣어준다.
ex> mysql-connector-java-5.0.7-bin.jar
myproject의 METE-INF에 context.xml 파일을 만든후 다음과 같이 작성한다.
<Context docBase="myproject(내가 만든 프로젝트 이름)"
path="/myproject"
reloadable="true">
<Resource name="jdbc/mytest" (프로젝트내 커넥션 이용시 사용할 이름)
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
loginTimeout="10"
maxWait="-1" (커넥션 반환 대기 시간)
username="root" (디비 유저)
password="1234" (디비 비번)
testOnBorrow="true" (커넥션 가져올때 유효성 검사)
url="jdbc:mysql://localhost:3306/mytest?autoReconnect=true" />
</Context>
◈Oracle 의 경우
%TOMCATHOME%\lib
와
myproject의 WEB-INF 의 lib에 오라클 JDBC 드라이버 파일을 넣어준다.
ex> ojdbc14.jar
myproject의 METE-INF에 context.xml 파일을 만든후 다음과 같이 작성한다.
<Context docBase="myproject(내가 만든 프로젝트 이름)"
path="/myproject"
reloadable="true">
<Resource name="jdbc/oratest"
auth="Container"
type="oracle.jdbc.pool.OracleDataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
factory="oracle.jdbc.pool.OracleDataSourceFactory"
url="jdbc:oracle:thin:@localhost:1521:test" (@데이터베이스 주소:포트:SID)
user="root" (디비 유저)
password="system" (디비 비번)
maxActive="50" (최대 풀 커넥션 수 )
maxIdle="20"
maxWait="-1" /> (커넥션 반환 대기 시간)
</Context>
다른 방법으로 톰캣의 server.xml의
<GlobalNamingResources> 와 </GlobalNamingResources> 사이에 <resource>를
<host> 와 </host> 사이에 <context>를 삽입하고,
web.xml을 수정하는 방법이 있지만 추천하지 않는다.
→ 사용법
DB커넥션을 하는 java파일에서.
<시작>
다른 방법으로 톰캣의 server.xml의
<GlobalNamingResources> 와 </GlobalNamingResources> 사이에 <resource>를
<host> 와 </host> 사이에 <context>를 삽입하고,
web.xml을 수정하는 방법이 있지만 추천하지 않는다.
→ 사용법
DB커넥션을 하는 java파일에서.
private Connection getConnection() throws Exception { Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); DataSource ds = (DataSource)envCtx.lookup("jdbc/mytest");//컨텍스트 name return ds.getConnection(); } Connection conn = getConnection();<끝>
등의 형식으로 커넥션을 사용하면 된다.
'DATABASE' 카테고리의 다른 글
데드락 (0) | 2018.12.22 |
---|---|
DB MySQL을 중심으로(innoDB엔진) (0) | 2018.12.13 |