MyBatis踩坑系列1:浅谈MyBatis的三种批量插入方式

本文介绍了MyBatis的三种批量插入方式:循环执行单条SQL、SQL拼接(foreach)和批处理。通过案例分析了不同方式在大量数据插入时的性能和限制,强调在实际应用中需根据数据量和性能需求选择合适的方法,避免资源浪费和程序错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MyBatis踩坑系列1:浅谈MyBatis的三种批量插入方式

序言

每个人在刚刚接触mybatis框架的时候,或多或少会写出一些令程序执行效率变慢的代码。例如:在for循环里写sql。博主刚刚开始写项目的时候,就写过一段双层for循环中做查询、插入、删除、修改的神操作。现在看来当时程序能够顺利上线得亏在于使用人数不多。我们都知道执行一条sql语句就需要访问数据库一次数据库,频繁和数据库进行交互,将是一个十分消耗服务器性能的行为。下面我将带大家带来三种mybatis批量插入的方式,以及各自的优缺点对比。

环境介绍

MySQL5.7+SpringBoot+mybatis+tkmapper

1.我是新手我怕谁——循环体中执行单条sql

在循环体中写入sql是我们新手入门的必经阶段,因为在循环体中写sql可以使得代码更加的直观,让自己的程序跟随自己的思路走下去,从而不增加代码的复杂度。那我们看一看这种方式在100万条插入数据下的表现吧

  /**
     * 循环体中的插入操作
     * @param testList
     * @return
     */
    public long test1(List<Test> testList){
        long start = System.currentTimeMillis();
        for (Test test : testList) {
            testMapper.insertSelective(test);
        }
        long end = System.currentTimeMillis();
        return end-start;
    }

执行结果:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不安分学徒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值