首页 > 其他 > 详细

myBatis获取批量插入数据的主键id

时间:2015-10-29 13:07:53      阅读:1657      评论:0      收藏:0      [点我收藏+]

在myBatis中获取刚刚插入的数据的主键id是比较容易的 , 一般来说下面的一句话就可以搞定了 , 网上也有很多相关资料去查.

@Options(useGeneratedKeys = true, keyProperty = "money_record_id")

但是相比较 , 批量插入数据时获取相数据的主键Id就会变得非常难了 , 上面的办法是没用的 . 可以按照如下办法去解决 : 

1.新建一个sql如下 , 在一个事务中 , 可以通过改sql获取到批量插入的数据的第一条数据的主键id : 

SELECT LAST_INSERT_ID()

2.鉴于在一个事务中所有的id都是连续的 , 可以反推出第一条到最后一条的所有插入的数据的主键id

// 批量插入数据
moneyRecordMapper.addBatchMoneyRecord(moneyRecordList);

// 获取批量数据中的第一条数据id
int lastId = moneyRecordMapper.getLastInsertId();

// 通过循环获取所有插入数据库数据的主键id for (int counter = 0; counter < moneyRecordList.size(); counter++) {
  MoneyRecord moneyRecord = moneyRecordList.get(counter);
  moneyRecord.setId(lastId + counter);
  logger.info("正在入库的money_record为 : " + moneyRecord.toString()); }

  

myBatis获取批量插入数据的主键id

原文:http://www.cnblogs.com/taojintianxia/p/4920058.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!