#TIL, JSP / DBCP 사용하기

Yimy·2020년 12월 29일
0

Web

목록 보기
3/6

웹페이지를 서비스할 때, 가장 많이 시간이 소요되는 부분이 바로
' 데이터베이스를 로드하고 연결 ' 하는 시간.

미리 만들어놨다가 필요할때마다 저장소에서 가져와 쓰고,
다시 반납하는 방법으로 사용하는

'커넥션풀' 을 사용 할 필요가 있다.
여기선 dbcp를 사용해보자.

0.

톰캣의 server.xml파일을 열어서, 사용할 Context의 태그의 안쪽에 아래의 Resource를 넣어준다. (// 절대 컨텍스트 태그를 닫지말고, 그 안에 Resource를 넣어줘야 한다.)

<Resource name="jdbc/myoracle" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:(내DB에 맞춰서)JAVA"
username="(내DB에 맞춰서)servlet" password="(내DB에 맞춰서)java" 
maxTotal="20" maxIdle="10"
maxWaitMillis="-1"/>

1.

해당 루트폴더의 web.xml 파일을 열어서 코드를 넣어준다.

 	<resource-ref>
		 <description>Oracle Datasource example</description> // 설명
		 <res-ref-name>jdbc/myoracle</res-ref-name> // 데이터소스 이름
		 <res-type>javax.sql.DataSource</res-type> // 타입
		 <res-auth>Container</res-auth> // 만들어주는 주체
	</resource-ref>


2.

사용할 모든 jsp마다 선언해주며 사용하는것은 굉장히 번거로우니,
미리 해당기능을 수행하는 Java Bean 을 만들어놓고, 쉽게 가져다 쓰자.

package 패키지경로;

import javax.naming.*;
import javax.sql.*;

public class DbcpBean {
	private DataSource ds;
	public DbcpBean() {
		try {
			Context initContext = new InitialContext();
			Context envContext  = (Context)initContext.lookup("java:/comp/env");
			ds = (DataSource)envContext.lookup("jdbc/myoracle");
		}catch(NamingException ne) { }
	}
	public DataSource getDs(){
		return ds;
	}
}


3.

// 내가 사용할 JSP 파일의 맨 위에

1) DataSource 를 쓰려면, javax.sql.DataSource 를 import 해와야 함. (여기서는 * 으로 import)
2) 내가 불러오는 이 클래스를 앞으로 dbcp 라고 부르겠다고 이름을 정의해준다.
3) 내가 만든 DbcpBean 클래스가 있는 경로를 적어준다.



4.


JSP의 서비스 태그안에
DataSource 이름 = dbcp(내가정한클래스이름).getDS();
메소드를 실행해서 생성한 ds를 받아오고,



5.


본격적인 실행문(try~catch문)에,
connection = (데이터소스객체명).getConnection();
해서, 사용할 con을 꺼내?와서 사용하면 끝!

profile
Better version

0개의 댓글

Powered by GraphCDN, the GraphQL CDN