java使用mybatis一次性插入多条数据

项目场景:

 java使用ibatis作为持久层框架时如何一次性插入多条数据


问题描述

正常插入一条数据的代码是这样的

mapper.insert(model)

问题分析:

这样单条插入是没有问题,问题是遇到多条要连续插入数据的时候循环执行会占用很长的处理时间,要不停的和db连接断开。


解决方案:

首先在mapper中继承InsertListMapper,例如

import tk.mybatis.mapper.additional.insert.InsertListMapper;

public interface CardBookMapper extends Mapper<CardBook>, InsertListMapper<CardBook> {

    /**
     * 查询数据
     * @param paramMap
     * @return
     */
    List<CardBook> selectCardBookListByParam(@Param("paramMap") HashMap paramMap);
}

这样在使用mapper时就可以直接插入列表数据了

mapper.insertList(modelList)

当然还有另一种方式 ,就是将list数据传入的mybatis后,直接使用xml循环写法将数据插入

<insert id="addcardbook" parameterType="java.util.Arraylist">
    insert into cardbook(id,name,state,remark) values
        <foreach collection="list" item="obj" index="index" separator=",">
                  (#{obj.id},#{obj.name},#{obj.state},#{obj.remark})
        </foreach>
 </insert>

这种方式必须保证传入的参数类型要和db数据类型匹配。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值