spring jdbcTemplate insert插入Oracle數據庫後返回當前主鍵id
阿新 • • 發佈:2017-11-16
spring bsp java ntc oracl statement ava head ora
最近做一個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