[IT]/java
java.DBCP
givemebro
2021. 4. 21. 15:43
반응형
DB연동시 커넥션을 생성하고 소멸하는 것이 아니라 미리 커넥션들을 생성해놓고 빌려주고 반납받은 형식으로 시스템 성능을 향상시키기 위해 사용
> 커넥션을 빌려주고 반납받은 형식으로 운영
package org.kosta.webstudy20.model;
import javax.sql.DataSource;
import org.apache.tomcat.dbcp.dbcp2.BasicDataSource;
import javafx.scene.chart.PieChart.Data;
/*
* DBCP, Database ConnectionPool, DataSource
* 시스템 성능 향상 목적
* DB연동시 커넥션 생성, 소멸 X
* > 미리 Pool에 생성해 놓고 빌려주고 반납받는 형식
*/
// Singleton Design Pattern : 시스템 상에서 단한번 객체 생성해 공유하여 사용하기 위해 적용하는 페턴
public class DataSourceManager {
private static DataSourceManager instance = new DataSourceManager();
// DBCP를 상위 DataSource 인터페이스 타입으로 관리
// > 캡슐화, 다형성을 위해(WAS 또는 DBCP 구현체가 변경되어도 이를 사용한느 클라이언트 코드(DAO)들은 수정할 필요가 없음
// > 결합도를 낮추는 효과 -> 유지보수성 향상에 기여
private DataSource dataSource;
private DataSourceManager() {
BasicDataSource dbcp = new BasicDataSource();
dbcp.setDriverClassName("oracle.jdbc.OracleDriver");
dbcp.setUrl("jdbc:oracle:thin:@127.0.0.1:1521:xe");
dbcp.setUsername("scott");
dbcp.setPassword("tiger");
dbcp.setMaxTotal(15);// default 8
this.dataSource = dbcp;
}
public static DataSourceManager getInstance() {
return instance;
}
public DataSource getDataSource() {
return dataSource;
}
}
Class DAO{
public DataSource dataSource;
private static DAO instance = new DAO();
privateDAO(){
dataSource=DataSourceManager.getinstace().getDataSource();
}
public static DAO getInstance(){
return instance;
}
}
public int method(){
Connection con = null;
PrepareStatement pstmt = null;
try{}
finally{}
}
반응형