spring jdbcTemplate insert插入Oracle数据库后返回当前主键id
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring jdbcTemplate insert插入Oracle数据库后返回当前主键id相关的知识,希望对你有一定的参考价值。
最近做一个spring版本3.0.4的老项目功能,应用场景要用到jdbctemplate插入oracle表后返回主键ID拿来和其他表关联。
用oralce的可以一直用这种处理方式,高兼容低。
public long insertOraGetId(final QuetInvtHeadVO headVO) { KeyHolder keyHolder = new GeneratedKeyHolder(); jdbcTemplate.update(new PreparedStatementCreator() { public PreparedStatement createPreparedStatement(Connection conn) throws SQLException { String sql = "insert into table values (seq_quet_invt_id.nextval,?,?,?,?,?,?,?,?,?)"; PreparedStatement ps = conn.prepareStatement(sql,new String[] {"id"}); ps.setString(1, headVO.getHeadType()); return ps; } },keyHolder); return keyHolder.getKey().longValue(); }
new string[] {"id"} 就是返回插入数据后序列增长后的主键,我已经应用到老项目中,处理稳定。
以上是关于spring jdbcTemplate insert插入Oracle数据库后返回当前主键id的主要内容,如果未能解决你的问题,请参考以下文章
spring boot 与 JdbcTemplate 一起工作
Spring之004: jdbcTemplate基本使用Spring实物控制