1. 程式人生 > >spring jdbcTemplate insert插入Oracle數據庫後返回當前主鍵id

spring jdbcTemplate insert插入Oracle數據庫後返回當前主鍵id

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