Spring/Study 2020. 4. 19. 18:21

(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)

 

커텍션풀은 데이터베이스 연결을 미리 준비해놓고 사용하는 것으로, 서버의 부하를 최소화 할 수 있다.

 

C2p0 모듈의 ComboPooledDataSource

- 예외처리가 반드시 필요

MemberDao.java

@Repository
public class MemberDao implements IMemberDao {
    private String driver = "oracle.jdbc.driver.OracleDriver";
    private String url = "jdbc:oracle:thin:@localhost:1521:xe";
    private String userid = "scott";
    private String userpw = "tiger";
 
    private ComboPooledDataSource dataSource;
    private JdbcTemplate template;
    
    public MemberDao() {
        dataSource = new ComboPooledDataSource();
        
        try {
            dataSource.setDriverClass(driver);
            dataSource.setJdbcUrl(url);
            dataSource.setUser(userid);
            dataSource.setPassword(userpw);
        } catch (PropertyVetoException e) {
            e.printStackTrace();
        }
        
        template = new JdbcTemplate();
        template.setDataSource(dataSource);
    }
}
cs

 

 

스프링 설정파일을 이용한 DataSource 설정

servlet-context.xml

<beans:bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <beans:property name="driverClass" value="oracle.jdbc.driver.OracleDriver" />
    <beans:property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:xe" />
    <beans:property name="user" value="scott" />
    <beans:property name="password" value="tiger" />
    <beans:property name="maxPoolSize" value="200" />
    <beans:property name="checkoutTimeout" value="60000" />
    <beans:property name="maxIdleTime" value="1800" />
    <beans:property name="idleConnectionTestPeriod" value="600" />
</beans:bean>
cs

MemberDao.java

@Repository

public class MemberDao implements IMemberDao {

 

    private JdbcTemplate template;

    

    @Autowired

    public MemberDao(ComboPooledDataSource dataSource) {

        this.template = new JdbcTemplate(dataSource);

    }

}

Colored by Color Scripter

cs

posted by DevMoomin
: