Spring JdbcTemplate如何生成主键

  通过JdbcTemplate.update()方法将KeyHolder传进来,经过一系列操作,由PreparedStatement.getGeneratedKeys()获取主键,并将值注入到KeyHolder中(注意:通过KeyHolder获取插入主键方法,仅在jdbc 3.0才被支持)

具体源码如下:

public Integer doInPreparedStatement(PreparedStatement ps) throws SQLException {

int rows = ps.executeUpdate();List> generatedKeys =generatedKeyHolder.getKeyList();generatedKeys.clear();ResultSet keys = ps.getGeneratedKeys();if (keys != null) {

  try {

  RowMapperResultSetExtractor> rse =new RowMapperResultSetExtractor>(getColumnMapRowMapper(), 1);generatedKeys.addAll(rse.extractData(keys));

}finally {JdbcUtils.closeResultSet(keys);}

}

  if (logger.isDebugEnabled()) {

  logger.debug("SQL update affected " + rows + " rows and returned " + generatedKeys.size() + " keys");

   }

   return rows;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本节介绍Statement接口及其子类PreparedStatement和CallableStatement。 它...
    zlb阅读 4,897评论 0 0
  • 本文包括:1、元数据- DatabaseMetaData2、元数据- ParameterMetaData3、元数据...
    廖少少阅读 10,050评论 0 10
  • 在Spring JDBC开发中,可以使用 JdbcTemplate 和 JdbcDaoSupport 类来简化整个...
    呵呵飘过阅读 3,994评论 0 1
  • 你投来我你不屑的目光,让我为你梦一场 冰冷、死寂又惆怅 活着的人眼里地狱的景象 你曾说我你...
    亘雷阅读 2,548评论 0 9

友情链接更多精彩内容