这篇文章将为大家详细讲解有关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批量插入数据的操作方法是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。