码迷,mamicode.com
首页 > 数据库 > 详细

spring jdbcTemplate insert插入Oracle数据库后返回当前主键id

时间:2017-11-16 11:54:13      阅读:473      评论:0      收藏:0      [点我收藏+]

标签:int   statement   插入数据   seq   java   alc   res   tor   rate   

最近做一个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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!