Mybatis Plus 实现批量插入
生活随笔
收集整理的這篇文章主要介紹了
Mybatis Plus 实现批量插入
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Mybatis Plus 的 IService 接口中提供了批量插入的方法,然而,它的內(nèi)部實(shí)現(xiàn)邏輯竟然是這樣的:
居然是循環(huán)單條插入?!逗人玩嘛,好吧,自己動(dòng)手,豐衣足食。
一. 添加依賴(lài)
<!--mybatis plus extension,包含了mybatis plus core--> <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-extension</artifactId><version>3.4.0</version> </dependency>二. 繼承默認(rèn)方法注入
在 injector 包下新建 EasySqlInjector.java
EasySqlInjector.java
三. 在 MybatisPlusConfig 配置文件中注入 Bean
//開(kāi)啟事務(wù) @EnableTransactionManagement @Configuration @MapperScan("掃描的mapper包路徑") public class MybatisPlusConfig {//需要注入的Bean@Beanpublic EasySqlInjector easySqlInjector() {return new EasySqlInjector();}@Bean("sqlSessionFactory")public SqlSessionFactory sqlSessionFactory() throws Exception {MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();// 其他配置項(xiàng)......sqlSessionFactory.setGlobalConfig(globalConfiguration());return sqlSessionFactory.getObject();}@Beanpublic GlobalConfig globalConfiguration() {GlobalConfig conf = new GlobalConfig();// 自定義的注入需要在這里進(jìn)行配置conf.setSqlInjector(easySqlInjector());return conf;} }四. 擴(kuò)展自帶 BaseMapper
在 mapper 包下新建 EasyBaseMapper 接口,擴(kuò)展自帶 BaseMapper
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import java.util.List;public interface EasyBaseMapper<T> extends BaseMapper<T> {/*** 批量插入 僅適用于mysql* @param entityList 實(shí)體列表* @return 影響行數(shù)*/Integer insertBatchSomeColumn(List<T> entityList); }五. 業(yè)務(wù)層面實(shí)現(xiàn)
修改業(yè)務(wù) mapper 接口 UserMapper,繼承剛剛擴(kuò)展的 EasyBaseMapper
import org.apache.ibatis.annotations.Mapper;/*** @author jichunyang* @description 用戶(hù)Mapper*/ @Mapper public interface UserMapper extends EasyBaseMapper<User> {}service實(shí)現(xiàn)層的使用
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service;@Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {@Override@Transactionalpublic void insertUsers(List<User> users) {// 這里使用了自定義的批量插入,baseMapper可以直接使用,不需要聲明baseMapper.insertBatchSomeColumn(users);} }IUserService 是定義的業(yè)務(wù)邏輯接口,和批量插入配置無(wú)關(guān);
參考博客:https://www.cnblogs.com/thinkYi/p/13723035.html
Mybatis Plus關(guān)聯(lián)博客:
SpringBoot + Mybatis Plus + Druid 實(shí)現(xiàn)多數(shù)據(jù)源切換和動(dòng)態(tài)事務(wù)
MyBatis Plus 的自動(dòng)填充數(shù)據(jù)功能
總結(jié)
以上是生活随笔為你收集整理的Mybatis Plus 实现批量插入的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: opencv计算亮度 调整亮度
- 下一篇: 写代码写到70岁,是一种什么样的体验?