mybatisPlus自定义批量新增的实现代码

mybatisPlus底层的新增方法是一条一条的新增的,今天自定义批量新增方法。
创建自定义数据方法注入类

/**
 * @Description: EasySqlInjector 自定义数据方法注入
 * @Author WangYejian
 * @Date: 2020/11/4 14:34
 */
public class EasySqlInjector extends DefaultSqlInjector {

  @Override
  public List<AbstractMethod> getMethodList(Class<?> mapperClass) {
    //防止父类方法不可用
    List<AbstractMethod> methods= super.getMethodList(mapperClass);
    methods.add(new InsertBatchSomeColumn());
    return methods;
  }
}

在mybatisplus配置文件MybatisPlusConfig加入自定义

@Bean
  public EasySqlInjector easySqlInjector() {
    return new EasySqlInjector();
  }

创建EasyBaseMapper 扩展通用 Mapper

package com.cgmcomm.mallplus.basic.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.util.Collection;

/**
 * @Description: EasyBaseMapper 扩展通用 Mapper,支持数据批量插入
 * @Author WangYejian
 * @Date: 2020/10/15 18:57
 */
public interface EasyBaseMapper<T> extends BaseMapper<T> {

  /**
   * 批量插入 仅适用于mysql
   *
   * @param entityList 实体列表
   * @return 影响行数
   */
  Integer insertBatchSomeColumn(Collection<T> entityList);
}
**
 * 定义业务mapper接口,继承刚刚扩展的EasyBaseMapper
 *
 * @author 天开易想
 */
@Mapper
public interface TestMapper extends EasyBaseMapper<Test> {
}

/**
 * 业务实现类接口,即可引用
 */
@Service
public class TestServiceImpl extends ServiceImpl<TestMapper, Test> implements TestService {

  @Override
  public Integer testBatch(Collection<Test> testList) {
    return baseMapper.insertBatchSomeColumn(testList);
  }

到此这篇关于mybatisPlus自定义批量新增的实现代码的文章就介绍到这了,更多相关mybatisPlus自定义批量新增内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MybatisPlus自定义Sql实现多表查询的示例

    前言 前段时间看同事的代码,发现他用Layui+MybatisPlus做分页查询做得很规整,认真看了下代码发现这种方式不仅适用于与Layui做分页查询,在任何时候需要多表联查的时候都可以用到.  以下以Layui分页查询作为参考,在实际应用中可以灵活使用. 分页查询VO对象 @Data @AllArgsConstructor @NoArgsConstructor public class LayuiData { private Integer code=0; private Long count

  • MyBatisPlus 自定义sql语句的实现

    一.引言 Good Good Study,Day Day Up MP自带的条件构造器虽然很强大,有时候也避免不了写稍微复杂一点业务的sql,那么那么今天说说MP怎么自定义sql语句吧. 二.配置 自定义的sql当然是写在XML文件中的啦,那么首先来定义xml文件的位置,在yml配置文件如下 mybatis-plus: # 如果是放在src/main/java目录下 classpath:/com/*/*/mapper/*Mapper.xml # 如果是放在resource目录 classpath:

  • mybatisPlus自定义批量新增的实现代码

    mybatisPlus底层的新增方法是一条一条的新增的,今天自定义批量新增方法. 创建自定义数据方法注入类 /** * @Description: EasySqlInjector 自定义数据方法注入 * @Author WangYejian * @Date: 2020/11/4 14:34 */ public class EasySqlInjector extends DefaultSqlInjector { @Override public List<AbstractMethod> getM

  • mybatisplus添加真正的批量新增、批量更新的实现

    使用mybatis-plus来进行批量新增和更新时,你会发现其实是一条条sql执行,下面进行优化. 1.添加InsertBatchMethod和UpdateBatchMethod类 import com.baomidou.mybatisplus.core.injector.AbstractMethod; import com.baomidou.mybatisplus.core.metadata.TableInfo; import lombok.extern.slf4j.Slf4j; import

  • springmvc 结合ajax批量新增的实现方法

    1. 需要注意的问题 mvc框架的处理日期问题 @ResponseBody响应对象是自定义对象,响应不是json @ResopnseBody响应自定义对象时,日期为是long类型的数 结束数据方法的参数,该如何定义?接收多个对象? 2. 页面代码 <%@ page language="java" isELIgnored="false" contentType="text/html; charset=UTF-8" pageEncoding=&

  • Mybatis Plus 实现批量插入的示例代码

    目录 一. 添加依赖 二. 继承默认方法注入 三. 在 MybatisPlusConfig 配置文件中注入 Bean 四. 扩展自带 BaseMapper 五. 业务层面实现 Mybatis Plus 的 IService 接口中提供了批量插入的方法,然而,它的内部实现逻辑竟然是这样的: 居然是循环单条插入?!逗人玩嘛,好吧,自己动手,丰衣足食. 一. 添加依赖 <!--mybatis plus extension,包含了mybatis plus core--> <dependency&

  • 小程序中实现excel数据的批量导入的示例代码

    目录 1 建立数据源 2 编制入库的代码 2.1 创建低码方法 2.2 低码中调用连接器 3 最终的代码 4 总结 我们上一篇介绍了如何利用微搭的自定义连接器接入腾讯文档的数据,光有接入是不够的,更重要的是我们需要将采集的数据积累下来,变成企业的数字资产. 积累数据最好的方式就是把数据存入数据库,低码工具除了有可视化编程的便利外,还提供了线上的文档型数据库.文档数据库比传统数据库的优势是,文档数据库的返回结构是JSON格式,直接就可以在前端进行渲染.关系型数据库还得通过代码进行转译. 另外一个方

  • Laravel 5.5 的自定义验证对象/类示例代码详解

    Laravel 5.5 将提供一个全新的自定义验证规则的对象,以作为原来的 Validator::extend 方法的替代. Laravel 5.5 将提供一个全新的自定义验证规则的对象,以作为原来的 Validator::extend 方法的替代..很多时候我们会直接用正则表达式来处理这种特殊的验证,也有时候我们会选择用 Validator::extend 来扩展一个自定义的规则.但在 Laravel 5.5 版本中,我们有了新的手段,只要定义一个实现 Illuminate\Contracts

  • mybatis学习之路mysql批量新增数据的方法

    接下来两节要探讨的是批量插入和批量更新,因为这两种操作在企业中也经常用到. mysql新增语句 insert into 表名(字段,字段...) values ( 值,值 ...):此种适合单条插入. 批量插入,一种可以在代码中循环着执行上面的语句,但是这种效率太差,下面会有对比,看看它有多差. 另一种,可以用mysql支持的批量插入语句, insert into 表名(字段,字段...) values ( 值,值 ...),( 值,值 ...),( 值,值 ...).... 这种方式相比起来,

  • 使用Python进行QQ批量登录的实例代码

    具体代码如下所示: #coding=utf-8 __author__ = 'Eagle' import os import time import win32gui import win32api import win32con import SendKeys from ctypes import * def QQ(qq,pwd): a = win32gui.FindWindow(None, "QQ") #运行QQ os.system('"C:\Program Files (

  • Mybatis批量操作sql写法示例(批量新增、更新)

    在使用foreach时,collection属性值的三种情况: 如果传入的参数类型为List时,collection的默认属性值为list,同样可以使用@Param注解自定义keyName; 如果传入的参数类型为array时,collection的默认属性值为array,同样可以使用@Param注解自定义keyName; 如果传入的参数类型为Map时,collection的属性值可为三种情况: 1.遍历map.keys; 2.遍历map.values; 3.遍历map.entrySet() 批量

随机推荐