반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

bro's coding

java.DBCP 본문

[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{}
}
반응형
Comments