在Spring中使用jdbctemplate进行Fire Sequence.nextval查询

Kam*_*iya 5 java database oracle spring jdbctemplate

数据库: Oracle

我有一个表,其中有10列,我想要插入行时序列下一个值,并使用插入的序列号.

现在我已经搜索并发现Spring的KeyHolder很有用,但仅限于少于8个字段,所以我不能使用它.

如何启动"select MySequence.nextval from dual"查询并获取序列jdbctemplate(NamedParameterJDBCTemplate)

是获得插入序列值的其他方法吗?

小智 7

您可以通过使用 JdbcTemplate 来实现此目的,如下所示:

final SqlRowSet sqlRowSet = jdbcTemplate.queryForRowSet(NEXT_VALUE_QUERY);
  sqlRowSet.next();// mandatory to move the cursor 
  sqlRowSet.getLong(1);// the value of the nextval
Run Code Online (Sandbox Code Playgroud)


gto*_*nic 5

使用a jdbctemplate可以只将序列生成器作为一个值提及,例如

jdbcTemplate.update("INSERT INTO TABLE (id, data) VALUES (MySequence.nextval, ?)", new Object[] { data });
Run Code Online (Sandbox Code Playgroud)

关于序列生成的注释:对于Oracle 12c之前的版本,您应该有一个触发器,它将为您增加序列。从12c开始,您可以使用自动递增功能。