Как получить доступ к последовательности db2 в Spring

#spring #spring-mvc

#spring #spring-mvc

Вопрос:

Как получить доступ к последовательности db2 в Spring? Необходимо получить доступ к последовательности, чтобы сгенерировать идентификатор и передать его в инструкцию insert с помощью spring, используя JdbcTemplate.

Ответ №1:

Во-первых, вы должны определить компонент, который обрабатывает последовательность. Что-то вроде этого:

 <bean id="incrementer" class="org.springframework.jdbc.support.incrementer.DB2SequenceMaxValueIncrementer">
    <property name="dataSource" ref="dataSource" />
    <property name="incrementerName" value="YOUR_SEQUENCE_NAME" />
</bean>
  

Затем вам нужно подключить этот компонент к компоненту, который собирается его вызвать. например:

 @Autowired
private DataFieldMaxValueIncrementer incrementer;
  

Наконец, вы используете компонент sequence для получения значения:

 Long identifier = incrementer.nextLongValue();
  

Ответ №2:

Вы пробовали queryForInt() с SQL select sequence.nextval from dual ?

http://static.springsource.org/spring/docs/2.5.6/api/org/springframework/jdbc/core/simple/SimpleJdbcTemplate.html#queryForInt(java.lang.Строка, java.lang.Объект …)