MyBatis-Plus 批量插入数据的操作方法
spring boot+mybatis plus环境,单条插入用的是BaseMapper自带的insert方法
public ApiResult addAnc(Anc anc) { ApiResult result = new ApiResult(); Integer insert = ancMapper.insert(anc); if (insert < 1) { return result.failed("发布失败,请联系管理员"); } return result.success(anc);
BaseMapper未提供批量插入接口,但是在com.baomidou.mybatisplus.service.IService
中提供了
/** * <p> * 插入(批量),该方法不适合 Oracle * </p> * * @param entityList 实体对象列表 * @return boolean */ boolean insertBatch(List<T> entityList); /** * <p> * 插入(批量) * </p> * * @param entityList 实体对象列表 * @param batchSize 插入批次数量 * @return boolean */ boolean insertBatch(List<T> entityList, int batchSize);
使用方法,定义一个自己的接口,继承IService
,泛型为被操作实体类
@Service public interface WorkIService extends IService<CmpWork> { }
定义一个实现类,实现上诉接口
@Service public class WorkIServiceImpl extends ServiceImpl<WorkMapper, CmpWork> implements WorkIService{ }
其中WorkMapper
为正常操作的mapper
在业务中测试批量插入操作
List<CmpWork> entityList = new ArrayList<>(1000); for (int i=1;i<10000;i++){ CmpWork work = new CmpWork(); work.setWorkName("workNametestBatch"+i); work.setWorkID("testBatch"+i); work.setCreTm(DateUtil.dateToYMDHMS(new Date())); entityList.add(work); } boolean b = workIService.insertBatch(entityList);
和单条插入的执行对比了一下,在1000条数据级别内,差别不大,批量操作的优势可能大数据环境下才能显现吧
关于MyBatis-Plus 批量插入的文章就介绍至此,更多相关MyBatis-Plus 批量插入内容请搜索编程宝库以前的文章,希望大家多多支持编程宝库!
前后端分离的概念在现在很火,最近也学习了一下前后端分离的登录认证。 创建后端springboot工程这个很简单了,按照idea的一步一步创建就行文件目录结构:pom ...