mybatis + mysql 高性能批量插入和批量更新

您所在的位置:网站首页 mybatis批量更新返回值 mybatis + mysql 高性能批量插入和批量更新

mybatis + mysql 高性能批量插入和批量更新

2024-06-05 14:41| 来源: 网络整理| 查看: 265

批量插入和批量更新的原理:把多条sql拼接为一条。

材料准备:测试表 test1

-- 测试表 test1 CREATE TABLE `test1` ( `id` int(14) NOT NULL, `name` varchar(50) DEFAULT NULL, `remark1` varchar(50) DEFAULT NULL, `remark2` varchar(50) DEFAULT NULL, `remark3` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 一、批量插入

例如:要插入3条数据,那么非批量的插入数据,执行sql分别为:

insert into test1(id,name,remark1,remark2,remark3) values(1,'sb','rmk11','rmk12','rmk13'); insert into test1(id,name,remark1,remark2,remark3) values(2,'sb','rmk21','rmk22','rmk23'); insert into test1(id,name,remark1,remark2,remark3) values(3,'sb','rmk33','rmk32','rmk33');

我们可以将以上的3条sql转变为1条sql:

insert into test1(id,name,remark1,remark2,remark3) VALUES (1,'sb','rmk11','rmk12','rmk13'), (2,'sb','rmk21','rmk22','rmk23'), (3,'sb','rmk33','rmk32','rmk33');

这样就只需要连接一次数据库,并且执行一条sql就可以插入多条数据了。

当然我们如果使用了mybatic,那么在插入多条数据的时候,不需要自己拼接sql,mybatis可以帮我们拼接。

TestBatchService 中的方法只需要把,需要插入的数据放入一个集合List中,然后直接调用mapper方法。

public void testInsertBatch() { List list = new ArrayList(); for (int i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3