Spring JdbcTemplate利用GeneratedKeyHolder提供了一个方法,可以实现在插入一条记录时,返回自增主键的id
int update(PreparedStatementCreator psc, KeyHolder generatedKeyHolder)利用GeneratedKeyHolder接口中的方法getKey()即可获取自增主键ID,getKey()方法的返回值是Numer类型的,可以根据自己的需求转化为自己想要的类型
//添加博客,并返回新增博客的id public int addBlog(Blog blog) { KeyHolder keyHolder = new GeneratedKeyHolder(); String sql = "insert into blog(blogger_id,title,content,blog_type) values (?,?,?,?)"; PreparedStatementCreator preparedStatementCreator = con -> { PreparedStatement ps = con.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); ps.setInt(1,blog.getBlogger_id()); ps.setString(2,blog.getTitle()); ps.setString(3,blog.getContent()); return ps; }; template.update(preparedStatementCreator, keyHolder); int bloggerId = keyHolder.getKey().intValue();//获取最终插入的自增的id return bloggerId; }