`
yangpanwww
  • 浏览: 621875 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring的JdbcTemplate插入操作返回主键ID的方法

阅读更多

 

 

Spring的JdbcTemplate插入操作返回主键ID的方法:Srping 2.5

 

	/**
	 * 妞见妞爱
	 * 
	 * 增加并且获取主键
	 * @param sql sql语句
	 * @param params 参数
	 * @return 主键
	 */
	public  Long insertAndGetKey(final String sql, final SmsBean smsbean) {
		KeyHolder keyHolder = new GeneratedKeyHolder();
		jdbcTemplate.update(new PreparedStatementCreator() {
			public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
				
				//String sql_sms = "insert into  sms(title,content,date_s,form,sffs,by1,by2,by3) values (?,?,'"+dates+"',?,?,?,?,?)"; 
                PreparedStatement ps = connection.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
                ps.setString(1, smsbean.getTitle());
                ps.setString(2, smsbean.getContent());
                ps.setString(3, smsbean.getForm());
                ps.setString(4, smsbean.getSffs());
                /*
				 * by1 存放的是 草稿主人的ID
				 * 当消息为发送。清楚by1的ID   
				 */	
                ps.setString(5, "");
                ps.setString(6, smsbean.getBy2());
                ps.setString(7, smsbean.getBy3());
                return ps;
			}
		}, keyHolder);
		
		Long generatedId = keyHolder.getKey().longValue(); 
		return generatedId;
	}

 

 

  上面是我开发中的代码...但是一直有个问题没解决  就是 在这个方法中保存日期的时候老是报错。。

  由于项目时间紧 也没时间去研究...所以就把 日期 拼接在 sql 语句中了。。。O(∩_∩)O哈哈~

 

  有空我在测试...今天先到这里....

分享到:
评论
4 楼 zx12366 2013-12-31  
不错,帮助了我,谢谢!收藏,做个笔记
3 楼 yangpanwww 2012-06-20  
int result = 0;
final String sql = "insert into Tstudent (username , password , address , time) values ( ? , ? , ? , ?)";
KeyHolder holder=new GeneratedKeyHolder();
result=jdbcTemplate.update(new PreparedStatementCreator() {

public PreparedStatement createPreparedStatement(Connection con)
throws SQLException {
PreparedStatement ps=con.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
ps.setString(1, student.getUsername());
ps.setString(2, student.getPassword());
ps.setString(3, student.getAddress());
ps.setDate(4, new Date(student.getTime().getTime()));
return ps;
}
}, holder);
zhangpeili 写道
int result = 0;
final String sql = "insert into Tstudent (username , password , address , time) values ( ? , ? , ? , ?)";
KeyHolder holder=new GeneratedKeyHolder();
result=jdbcTemplate.update(new PreparedStatementCreator() {

public PreparedStatement createPreparedStatement(Connection con)
throws SQLException {
PreparedStatement ps=con.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
ps.setString(1, student.getUsername());
ps.setString(2, student.getPassword());
ps.setString(3, student.getAddress());
ps.setDate(4, new Date(student.getTime().getTime()));
return ps;
}
}, holder);
// KeyHolder holder = new GeneratedKeyHolder();
// result = namedParameterJdbcTemplate.update(sql,
// new BeanPropertySqlParameterSource(student), holder);
System.out.println(holder.getKey().intValue());
return result;
哥们这样就可以了,你获得date是java.util里面的,而java.sql是java.util的子类,



喔喔。。谢谢。。嘿嘿
2 楼 zhangpeili 2012-06-16  
int result = 0;
final String sql = "insert into Tstudent (username , password , address , time) values ( ? , ? , ? , ?)";
KeyHolder holder=new GeneratedKeyHolder();
result=jdbcTemplate.update(new PreparedStatementCreator() {

public PreparedStatement createPreparedStatement(Connection con)
throws SQLException {
PreparedStatement ps=con.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
ps.setString(1, student.getUsername());
ps.setString(2, student.getPassword());
ps.setString(3, student.getAddress());
ps.setDate(4, new Date(student.getTime().getTime()));
return ps;
}
}, holder);
// KeyHolder holder = new GeneratedKeyHolder();
// result = namedParameterJdbcTemplate.update(sql,
// new BeanPropertySqlParameterSource(student), holder);
System.out.println(holder.getKey().intValue());
return result;
哥们这样就可以了,你获得date是java.util里面的,而java.sql是java.util的子类,
1 楼 zhangpeili 2012-06-16  
String sql = "insert into Tstudent (username , password , address , time) values ( :username , :password , :address , :time)";
KeyHolder holder = new GeneratedKeyHolder();
result = namedParameterJdbcTemplate.update(sql,
new BeanPropertySqlParameterSource(student), holder);
System.out.println(holder.getKey().intValue())
你可以用这个,这个封装了jdbcTemplate,并且增加了新的特性!

相关推荐

Global site tag (gtag.js) - Google Analytics