Mybatis Plus 实现批量插入
生活随笔
收集整理的這篇文章主要介紹了
Mybatis Plus 实现批量插入
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Mybatis Plus 的 IService 接口中提供了批量插入的方法,然而,它的內部實現邏輯竟然是這樣的:
居然是循環單條插入?!逗人玩嘛,好吧,自己動手,豐衣足食。
一. 添加依賴
<!--mybatis plus extension,包含了mybatis plus core--> <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-extension</artifactId><version>3.4.0</version> </dependency>二. 繼承默認方法注入
在 injector 包下新建 EasySqlInjector.java
EasySqlInjector.java
三. 在 MybatisPlusConfig 配置文件中注入 Bean
//開啟事務 @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();// 其他配置項......sqlSessionFactory.setGlobalConfig(globalConfiguration());return sqlSessionFactory.getObject();}@Beanpublic GlobalConfig globalConfiguration() {GlobalConfig conf = new GlobalConfig();// 自定義的注入需要在這里進行配置conf.setSqlInjector(easySqlInjector());return conf;} }四. 擴展自帶 BaseMapper
在 mapper 包下新建 EasyBaseMapper 接口,擴展自帶 BaseMapper
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import java.util.List;public interface EasyBaseMapper<T> extends BaseMapper<T> {/*** 批量插入 僅適用于mysql* @param entityList 實體列表* @return 影響行數*/Integer insertBatchSomeColumn(List<T> entityList); }五. 業務層面實現
修改業務 mapper 接口 UserMapper,繼承剛剛擴展的 EasyBaseMapper
import org.apache.ibatis.annotations.Mapper;/*** @author jichunyang* @description 用戶Mapper*/ @Mapper public interface UserMapper extends EasyBaseMapper<User> {}service實現層的使用
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 是定義的業務邏輯接口,和批量插入配置無關;
參考博客:https://www.cnblogs.com/thinkYi/p/13723035.html
Mybatis Plus關聯博客:
SpringBoot + Mybatis Plus + Druid 實現多數據源切換和動態事務
MyBatis Plus 的自動填充數據功能
總結
以上是生活随笔為你收集整理的Mybatis Plus 实现批量插入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opencv计算亮度 调整亮度
- 下一篇: 写代码写到70岁,是一种什么样的体验?