mybatis + mysql 高性能批量插入和批量更新 |
您所在的位置:网站首页 › mybatis批量更新返回值 › mybatis + mysql 高性能批量插入和批量更新 |
批量插入和批量更新的原理:把多条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 |