Spring Frameworkどんどんメモ書き。 AdvertisementOracleシーケンスの取得
DAO(SequenceDao.java)
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer;
public class SequenceDao extends JdbcDaoSupport{
private String getNextId() throws DataAccessException {
OracleSequenceMaxValueIncrementer seq =
new OracleSequenceMaxValueIncrementer(super.getDataSource(), "シーケンス名");
return seq.nextStringValue();
}
}
シーケンスをサポートするクラスが用意されているので、上記のように利用する。コンテキストファイル(applicationContext.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- Data Source -->
<bean id="sampleDataSource" 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:@sample:1521:sampledb</value></property>
<property name="username"><value>sample</value></property>
<property name="password"><value>sample</value></property>
</bean>
<!-- dao -->
<bean id="sequenceDao" class="dao.SequenceOracleDao">
<property name="dataSource"><ref bean="sampleDataSource"/></property>
</bean>
<!-- logic -->
<bean id="sampleLogic" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target"><ref bean="sampleLogicTarget"/></property>
</bean>
<bean id="sampleLogicTarget" class="logic.SampleLogic">
<property name="sequenceDao"><ref local="sequenceDao"/></property>
</bean>
</beans>
シーケンス用のDAOの生成時に、データソースの定義を渡す。利用クラス(SampleLogic.java)
import org.springframework.dao.DataAccessException;
public class SampleLogic{
private SequenceDao sequenceDao = null;
public SequenceDao getSequenceDao() {
return sequenceDao;
}
public void setSequenceDaoSequenceDao sequenceDao) {
this.sequenceDao = sequenceDao;
}
public void getNextId() {
String nextId = null;
try{
nextId = sequenceDao.getNextId();
}catch(DataAccessException e){
e.printStackTrace();
}
return nextId;
}
}
リンクAdvertisement |
ショートカット・634・634ブログ ・このカテゴリのトップページに戻る ・Incubator(Pukiwiki) ・634ラボ UIコレクションギャラリー ZO-3ジェネレーター サイト検索Y!ログールビリヤード |