mybatis批量新增系列之有主键的表的批量新增

前面介绍了无主键的表的批量插入,文章地址:http://blog.csdn.net/zhouxiaoyun0228/article/details/9980181

但是在开发中往往许多的表是需要主键的,因而现在介绍一下有主键的表的批量插入,该主键是数据类型的数字类型。

最开始我是这么想的:主键让他自动添加,因而我们可以在insert中添加一个自增序列号就可以了,如下

 <selectKey resultType="long" keyProperty="ID" order="BEFORE">
     SELECT IBATIS_SEQUENCE.NEXTVAL AS ID FROM dual
    </selectKey>

然后在listStr中添加一个#{obj.ID,jdbsType=DOUBLE}即可,但是发现没用,生成的Id不会自动添加进入List中。

后面有想了一下,其实思路还是没有错的。。我们只需要转化一下,将生成的主键Id值放入自动添加到List集合中即可,代码如下

 for(DataRecord d:list){
   Serializable id = this.generateId();
   d.put(keyName, id);
   back.add(d);
  }

上面红色的标记是是与无主键部分唯一的区别,keyName是传入进来的主键名称,this.generateId();是提供自增长id的方法。

public Serializable generateId() {
  return this.getDao().queryForLong("com.mip.biz.syn.data.batch.demo.getKeyValue", null);
 }

mapper中的代码如下

  <select id="getKeyValue" parameterType="map"

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值