最近做一个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
标签:int statement 插入数据 seq java alc res tor rate
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:http://www.cnblogs.com/KuJo/p/7842763.html