MyBatis-Plus 批量插入數據的操作方法
spring boot+mybatis plus環(huán)境,單條插入用的是BaseMapper自帶的insert方法
public ApiResult addAnc(Anc anc) { ApiResult result = new ApiResult(); Integer insert = ancMapper.insert(anc); if (insert < 1) { return result.failed("發(fā)布失敗,請聯系管理員"); } 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
在業(yè)務中測試批量插入操作
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);
和單條插入的執(zhí)行對比了一下,在1000條數據級別內,差別不大,批量操作的優(yōu)勢可能大數據環(huán)境下才能顯現吧
到此這篇關于MyBatis-Plus 批量插入的文章就介紹到這了,更多相關MyBatis-Plus 批量插入內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
springboot啟動時如何指定spring.profiles.active
這篇文章主要介紹了springboot啟動時如何指定spring.profiles.active問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04詳解SpringMVC中的@RequestMapping注解
這篇文章主要介紹了SpringMVC中@RequestMapping注解,@RequestMapping注解是一個用來處理請求地址映射的注解,可用于映射一個請求或一個方法,可以用在類或方法上,需要的朋友可以參考下2023-07-07