假如需要搬一万块砖到楼顶,有一部电梯,电梯一次可以放适量的砖(最多放 500)。可以选择一次运送一块砖,也可以一次运送 500 块砖,哪个时间消耗大?
一、sql 层面实现数据插入
- 单条插入数据的写法:
insert into table ([列名],[列名]) values ([列值],[列值]));
或:
insert into table values ([列值],[列值]));
- 批量插入
一种可以在代码中循环执行上面的语句,但是这种效率太差。另一种,可以用 MySQL 支持的批量插入语句,这种方式更高效。
insert into table ([列名],[列名])
VALUES
([列值],[列值]),
([列值],[列值]),
([列值],[列值]);
批量的好处:可以避免程序和数据库建立多次连接,增加服务器负荷。
二、MyBatis 层面批量插入数据到数据库
两种方式:xml 文件和注解。使用批量插入执行的 sql 语句应该等价于:
insert into table (id, name,sex,address)
values
(?,?,?,?),(?,?,?,?),(?,?,?,?),(?,?,?,?)
1️⃣xml 配置
最基础的是用 mapping.xml 配置的方式,包括以下两种具体方式:
- mapping.xml 中 insert 语句可以写成单条插入,在调用方循环 1000 次<