본문 바로가기

프로그램

[SPRING]spring에서 DB연동 클래스 예시

반응형

spring의 DriverManagerDataSource 사용

- DriverManagerDataSource 도 POOL 처리가 안되는 듯 함

- 표준 DataSource 인터페이스의 구현체

- 매번 새로운 Connection을 반환


<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>

    <property name="URL" value="jdbc:oracle:thin:@<hostname>:<port_num>:<SID>"/>

    <property name="username" value="dummy_user"/>

    <property name="password" value="dummy_pwd"/>

</bean>



spring의 SimpleDriverDataSource 사용

<bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource">

<property name="driverClass" value="com.mysql.jdbc.Driver" />

<property name="url" value="jdbc:mysql://localhost:3306/db_something" />

<property name="username" value="myusername" />

<property name="password" value="mypassword" />

</bean>



아파치의 common dbcp 사용

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName" value="com.mysql.jdbc.Driver" />

<property name="url" value="jdbc:mysql://localhost:3306/db_something" />

<property name="username" value="myusername" />

<property name="password" value="mypassword" />

</bean>


속성

maxActive : 커넥션 풀에서 최대 active 가능한 숫자

maxIdle : 커넥션 풀에 유지될 수 있는 idle 상태 커넥션 최대 갯수(기본값 8개)

maxIdle 이상의 Connection은 close 시킨다고 함


pool에 Connection 이 유지되는 갯수는 maxIdle 를 보면 될 듯 함


참고 url : http://idkbj.tistory.com/91



C3P0 사용

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">

<property name="driverClass" value="${jdbc.driverClassName}"/>

<property name="jdbcUrl" value="${jdbc.url}"/>

<property name="user" value="${jdbc.username}"/>

<property name="password" value="${jdbc.password}"/>

</bean>


SmartDataSource

AbstractDataSource

SingleConnectionDataSource

TransactionAwareDataSourceProxy

DataSourceTransactionManager

NativeJdbcExtractor




참고 url

http://houki.tistory.com/41
http://devday.tistory.com/2371
http://blog.outsider.ne.kr/882