본문 바로가기
[DBMS]/- Oracle

[Oracle]DBCP

by Hapco 2022. 5. 31.
728x90
반응형

예시

 

lib에 추가

 

<?xml version="1.0" encoding="UTF-8"?>
<!-- 
현재 프로젝트를 해석(실행)할 떄 알아야 하는 정보를 설정
<Resource></Resource> 애는 첫글자 반드시 R로 설정해야한다.
-driverClassName=: DBMS에 연결하기 위한 드라이버 클래스 경로 
-url : DBMS에 연결하기 위한 경로
-maxtotal : 총 연결(Connection)의 수
-minIdle : 유휴 연결 (connection) 최소개수
-maxIdle : 유휴 연결 (Connection) 최대갯수
-maxWaitMillis : 연결이 모두 사용중일 경우의 대기 시간
 -->
<Context>
<!-- DBCP를 수행할수 있는 자원(도구) 등록 -->
 <Resource
   name="jdbc/oracle"
   type="javax.sql.DataSource"
   auth="Container"
   
   driverClassName="oracle.jdbc.OracleDriver"
   url="jdbc:oracle:thin:@localhost:1521:xe"
   username="kh"
   password="kh"
   
   maxTotal="20"
   minIdle="0"
   maxIdle="5"
   maxWaitMillis="3000"/>
</Context>
package home.beans;

import java.sql.Connection;
import java.sql.DriverManager;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;


public class JdbcUtils {
	//연결 생성 (1) : 직접 연결을 수행하는 방법
	//- 다수의 사용자가 몰릴 경우 연결 생성 시간이 과다하여 부하로 인한 오류발생
	public static Connection connect(String username,String password) throws Exception{
		Class.forName("oracle.jdbc.OracleDriver");
		Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", username, password);
		return con;
		
	}
	//연결생성(2) : DBCP 라이브러리(업체)를 고용하는 방법
	//-연결을 직접 수행하는 것이 아니라 연결을 관리 하는 업체를 두고 렌탈하는 방식
	//-연결을 생성하는 시간이 줄어들어서 전체적인 성능과 안정성이 향상됨
	//-설정 파일을 초기에 불러와야한다.
	private static DataSource ds; 
	
	static {
		//context.xml에 있는 "jdbc/oracle" 이라는 이름을 가진 자원의 참조 정보를 획득
		//이름을 찾는 도구생성 
		try {
			Context ctx= new InitialContext();
			//ds=ctx를 이용해서 찾아낸 도구 정보;
			//ds=ctx.lookup("경로+이름");
			ds=(DataSource) ctx.lookup("java:comp/env/jdbc/oracle");
		}catch(Exception e) {
			System.err.println("DataSource생성 오류");
			e.printStackTrace();
		}
	}
	public static Connection connect2() throws Exception{
		return ds.getConnection();
		
	}
	


}

'[DBMS] > - Oracle' 카테고리의 다른 글

[Oracle]jdbc,beans,select  (0) 2022.05.31
[Oracle]Jdbc,beans,delete  (0) 2022.05.31
[Oracle] jdbc,bean,update  (0) 2022.05.31
[Oracle] jdbc , beans  (0) 2022.05.31
[Oracle] jdbc (Select 원하는 항목 검사 )  (0) 2022.05.31

댓글