用mybatispuls 批量插入
时间: 2023-12-11 13:24:19 浏览: 90
MyBatis批量插入(insert)数据操作
5星 · 资源好评率100%
Mybatis Plus提供了三种批量插入的方案:原生方法(saveBatch())、基于Mybatis Plus的自定义SQL语句、基于Mybatis Plus的批量插入。其中,原生方法(saveBatch())性能一般,无需配置;基于Mybatis Plus的自定义SQL语句可以支持一千条以上的插入,但需要编写XML文件;基于Mybatis Plus的批量插入是性能最优的方案,但需要进行配置。
为了正确利用MyBatis Plus进行批量插入,你可以遵循以下步骤:
1. 创建一个类,将其注入到Spring容器中:
```java
@Component
public class EasySqlInjector extends DefaultSqlInjector {
@Override
public List<AbstractMethod> getMethodList(Class<?> mapperClass) {
List<AbstractMethod> methodList = super.getMethodList(mapperClass);
// 过滤Insert语句中的字段
methodList.add(new InsertBatchSomeColumn(t -> !"weekend".equals(t.getColumn()) && !"position".equals(t.getColumn()) && !"date".equals(t.getColumn())));
// 添加InsertBatchSomeColumn方法
return methodList;
}
}
```
2. 创建一个Mapper接口:
```java
public interface YourMapper extends BaseMapper<YourEntity> {
Integer insertBatchSomeColumn(Collection<YourEntity> entityList);
}
```
3. 在业务层中注入这个Mapper,并传入List集合进行批量插入操作。
需要注意的是,SQL Server在批量插入时,最多支持2100个字符。如果超出字符限制,会报错。此外,不同的数据库对于批量插入语法的支持也不同,因此MyBatis Plus没有直接提供批量插入方法,需要自己进行复写。
阅读全文