4.자바 지구 화 기초-제3자 데이터베이스 연결 탱크:C3P 0

제3자 데이터베이스 연결 탱크:C3P 0 사용
 
       현재 실제 개발 에서 유행 하 는 성능 이 우수한 제3자 데이터 베이스 연결 탱크 가 많이 존재 합 니 다.저 는 시간 을 들 여 연결 탱크 를 쓰 지 않 고 성능 과 안정성 등 요 소 를 고려 해 야 합 니 다.이미 만들어 진 것 이 있 는데 왜 사용 하지 않 습 니까?C3P 0 연결 탱크 의 사용 을 시도 해 보 세 요:
1.C3P 0 의 jar 패 키 지 를 다운로드 하고 가 져 옵 니 다.다운로드 주소:http://cn.jarfire.org/c3p0.html
 
2.데이터 원본 을 설정 하 는 데 세 가지 방법 이 있 습 니 다.
 
1.set 방법 으로 수 동 으로 설정
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass(props.getProperty("driverClass"));
cpds.setJdbcUrl(props.getProperty("jdbcUrl"));
cpds.setUser(props.getProperty("user"));
cpds.setPassword(props.getProperty("password"));

 
2.기본 속성 파일 c3p0.properties 설정(기본 값 이 라면 파일 이름 을 마음대로 변경 할 수 없습니다)
    :
c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql://localhost:3306/jdbc
c3p0.user=root
c3p0.password=java
...

프로그램 에서 데이터 화 를 초기 화 하려 면 호출 만 하면 됩 니 다:ComboPooledDataSource cpds=new ComboPooledDataSource();속성 파일 을 자동 으로 해석 합 니 다.
 
3.클래스 경로 아래 기본 xml 프로필 설정:c3p0-config.xml
 
 
      이 방식 은 두 번 째 방식 과 유사 하지만 설정 파일 을 이용 하면 다 중 데이터 원본 설정 을 지원 하고 default-config 와 named-config 두 가지 설정 방식 을 제공 하 는 것 이 좋 습 니 다.예 를 들 어:
//  MySQL Oracle        
<c3p0-config>
	<default-config>
		<property name="driverClass">com.mysql.jdbc.Driver</property>
		<property name="jdbcUrl">jdbc:mysql://localhost:3306/day16</property>
		<property name="user">root</property>
		<property name="password">root</property>
		
		<property name="initialPoolSize">10</property>
		<property name="maxIdleTime">30</property>
		<property name="maxPoolSize">20</property>
		<property name="minPoolSize">5</property>
		<property name="maxStatements">200</property>
	</default-config>
	
	<named-config name="oracle">
		<property name="driverClass">oracle.jdbc.driver.OracleDriver</property>
		<property name="jdbcUrl">jdbc:oracle:thin:@127.0.0.1:1521:ORCL</property>
		<property name="user">scott</property>
		<property name="password">tiger</property>
	
		<property name="acquireIncrement">50</property>
		<property name="initialPoolSize">100</property>
		<property name="minPoolSize">50</property>
		<property name="maxPoolSize">1000</property><!-- intergalactoApp adopts a different approach to configuring statement caching -->
		<property name="maxStatements">0</property>
		<property name="maxIdleTime">60</property>
		<property name="maxStatementsPerConnection">5</property>
	</named-config>
</c3p0-config>

default-config 는 기본 데이터 원본 설정 을 표시 합 니 다.named-config 는 사용자 정의 데이터 원본 을 표시 합 니 다.기본 데이터 원본 을 호출 하 는 것 은 두 번 째 방식 과 같 습 니 다.사용자 정의 데이터 원본 을 호출 하려 면 구조 적 방법 으로 사용자 정의 데이터 원본 이름 을 전달 하면 됩 니 다.예 를 들 어 위의 name 의"Oacle"과 같 습 니 다.
ComboPooledDataSource cpds = new ComboPooledDataSource(“oracle”);
 
데모 코드:
import java.sql.Connection;
import java.sql.SQLException;
import com.mchange.v2.c3p0.ComboPooledDataSource;

/**
 * C3P0    
 * @author Administrator
 *
 */
public class DBManager {
	
	private static final DBManager dbm = new DBManager();
	static ComboPooledDataSource cpds = new ComboPooledDataSource("oracle");
	private Connection conn = null;
	
	public DBManager(){}
	
	/**
	 *     
	 * @return
	 */
	public synchronized Connection getConnection(){
		try {
			conn = cpds.getConnection();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}
	
	//        (   )
	public synchronized void getInfo() throws Exception{
		System.out.println(cpds.getMaxPoolSize());//      
               System.out.println(cpds.getMinPoolSize());//      
               System.out.println(cpds.getNumBusyConnections());//        
               System.out.println(cpds.getNumIdleConnections());//      
               System.out.println(cpds.getNumConnections());//     
	}
	
}

 

좋은 웹페이지 즐겨찾기