스터디📖/Spring

5. 연결 - 5

호프 2021. 7. 24. 21:34

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC_renew/dashboard

 

자바 스프링 프레임워크(renew ver.) - 신입 프로그래머를 위한 강좌 - 인프런 | 강의

스프링 프레임워크 기본부터 실전 사용법까지! 충실하고 폭넓은 설명과 예제를 통해 현장에 바로 투입되어 활약하는 개발자로 거듭나세요., 자바 스프링 프레임워크로 내 개발자 커리어에 봄이

www.inflearn.com

섹션 5. 연결

25강 커넥션풀

25-1 c3p0 모듈의 CompoPooledDataSource

connection pool의 datasource는 예외처리 해줘야함

@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);
	}
    ...
}

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

스프링 설정파일

<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>

config 자바 파일 이용

@Configuration
public class DBConfig {

	@Bean
	public ComboPooledDataSource dataSource() throws PropertyVetoException {
		ComboPooledDataSource dataSource = new ComboPooledDataSource();
		
		dataSource.setDriverClass("oracle.jdbc.driver.OracleDriver");
		dataSource.setJdbcUrl("jdbc:oracle:thin:@localhost:1521:xe");
		dataSource.setUser("scott");
		dataSource.setPassword("tiger");
		dataSource.setMaxPoolSize(200);
		dataSource.setCheckoutTimeout(60000);
		dataSource.setMaxIdleTime(1800);
		dataSource.setIdleConnectionTestPeriod(600);
		
		return dataSource;
	}	
}

 

@Autowired
public MemberDao(CompoPooledDataSource dataSource){
	this.template = new JdbcTemplate(dataSource);
}

--> 실무에서 많이 쓰는 방법