1. xml 설정 파일에서 다음과 같이 incrementManager를 정의한다.
(오라클 이므로
org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer를
사용했으나
다른 DB라면 적절한 클래스를 사용해야 한다. DB2라면 SequenceMaxValueIncrementer, MySQL이라면
MySQLMaxValueIncrementer, PostgreSQL이라면
PostgreSQLSequenceMaxValueIncrementer)
<!-- DBCP 설정 -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@192.168.1.131:1521:ORCL</value>
</property>
<property name="username">
<value>scott</value>
</property>
<property name="password">
<value>tiger</value>
</property>
</bean>
<bean id="boardDAO" class="board.dao.SpringJdbcDAO">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="incrementer">
<ref local="incrementerManager" />
</property>
</bean>
<bean id="boardService" class="board.service.BoardServiceImpl">
<property name="boardDAO">
<ref local="boardDAO"/>
</property>
</bean>
<bean id="incrementerManager" class="org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="incrementerName">
<value>SEQ_SID</value>
</property>
</bean>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@192.168.1.131:1521:ORCL</value>
</property>
<property name="username">
<value>scott</value>
</property>
<property name="password">
<value>tiger</value>
</property>
</bean>
<bean id="boardDAO" class="board.dao.SpringJdbcDAO">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="incrementer">
<ref local="incrementerManager" />
</property>
</bean>
<bean id="boardService" class="board.service.BoardServiceImpl">
<property name="boardDAO">
<ref local="boardDAO"/>
</property>
</bean>
<bean id="incrementerManager" class="org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="incrementerName">
<value>SEQ_SID</value>
</property>
</bean>
2. insert하는 DAO쪽에서 ...
private DataFieldMaxValueIncrementer incrementer;
public void setIncrementer(DataFieldMaxValueIncrementer incrementer)
{
this.incrementer = incrementer;
}
this.incrementer = incrementer;
}
라고 increment를 정의하고...
값을 insert하기 전에
String strQuery = "INSERT INTO BOARD VALUES " +
"( ?, ?, ?, ?, ?, sysdate) ";
int maxID =new Integer(incrementer.nextIntValue());
"( ?, ?, ?, ?, ?, sysdate) ";
int maxID =new Integer(incrementer.nextIntValue());
와 같이 사용하면 된다.
오라클자바커뮤니티 추천 실무 전문 강좌
댓글 없음:
댓글 쓰기