首页 > 其他分享 >mybatis-plus数据批量插入

mybatis-plus数据批量插入

时间:2023-08-01 12:22:05浏览次数:41  
标签:util little 批量 tiger testblockt plus mybatis import public

    为了提高数据处理效率,大量数据需要插入数据时可以采用批量数据插入的策略提高数据插入的效率。

如下是实现方法

1、代码结构

 2、实体类

package little.tiger.one.application.testblockt.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;


/**
 * <p>
 * 。
 * </p>
 *
 * @author yc
 * @since 2023-08-01
 */
@TableName(value = "test_block_t")
public class TestBlockT {
    private static final long serialVersionUID = 1L;

    /**
     * 。
     */
    @TableId
    private String blockId;
    /**
     * 。
     */
    private String blockName;

    public void setBlockId(String blockId) {
        this.blockId = blockId;
    }

    public String getBlockId() {
        return blockId;
    }

    public void setBlockName(String blockName) {
        this.blockName = blockName;
    }

    public String getBlockName() {
        return blockName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("blockId", getBlockId())
                .append("blockName", getBlockName())
                .toString();
    }
}

3、mapper

package little.tiger.one.application.testblockt.mapper;


import little.tiger.one.application.testblockt.domain.TestBlockT;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;


/**
 * <p>
 * Mapper 接口。
 * </p>
 *
 * @author yc
 * @since 2023-08-01
 */
public interface TestBlockTMapper extends BaseMapper<TestBlockT> {

}

4、接口  尤其注意红色部分

package little.tiger.one.application.testblockt.service;

import com.baomidou.mybatisplus.extension.service.IService;
import little.tiger.one.application.testblockt.domain.TestBlockT;

import java.util.Collection;
import java.util.List;
import java.util.Map;


/**
 * <p>
 * 服务类。
 * </p>
 *
 * @author yc
 * @since 2023-08-01
 */
public interface ITestBlockTService  extends IService<TestBlockT> {


    /**
     * 单记录新增。
     *
     * @param testBlockT 参数说明
     * @return status
     */
    int insert(TestBlockT testBlockT);



    boolean saveBatch(Collection<TestBlockT> entityList);
}

5、接口实现 注意红色部分,如果是单数据源@Transactional 这么写就可以,如果是多数据源一定要指定事务例如:@Transactional(transactionManager="testTransactionManager")

package little.tiger.one.application.testblockt.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import little.tiger.one.application.testblockt.domain.TestBlockT;
import little.tiger.one.application.testblockt.mapper.TestBlockTMapper;
import little.tiger.one.application.testblockt.service.ITestBlockTService;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.transaction.annotation.Transactional;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.HashMap;


/**
 * <p>
 * 服务实现类。
 * </p>
 *
 * @author yc
 * @since 2023-08-01
 */
@Service
public class TestBlockTServiceImpl  extends ServiceImpl<TestBlockTMapper, TestBlockT> implements ITestBlockTService {
    @Autowired
    TestBlockTMapper testBlockTMapper;

    /**
     * 单记录新增。
     *
     * @param testBlockT 参数说明
     * @return status
     */
    @Override
    public int insert(TestBlockT testBlockT) {
        return testBlockTMapper.insert(testBlockT);
    }


    @Override
    @Transactional
    public boolean saveBatch(Collection<TestBlockT> entityList) {
        return super.saveBatch(entityList);
    }
}

 6、控制类

package little.tiger.one.application.testblockt.controller;


import little.tiger.one.application.testblockt.service.ITestBlockTService;
import little.tiger.one.application.testblockt.domain.TestBlockT;
import little.tiger.one.basemanager.page.PageUtil;
import little.tiger.one.webbase.component.HttpStatusCode;
import little.tiger.one.webbase.controller.BaseController;
import little.tiger.one.webbase.pojo.AjaxResult;
import little.tiger.one.webbase.pojo.PageDomain;
import little.tiger.one.webbase.util.ServletUtil;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;

/**
 * <p>
 * 前端控制器。
 * </p>
 *
 * @author yc
 * @since 2023-08-01
 */

@RestController
@RequestMapping("/testblockt")
public class TestBlockTController extends BaseController {


    @Autowired
    private ITestBlockTService testBlockTService;


    /**
     * 单记录新增。
     *
     * @param testBlockT 参数说明
     * @return AjaxResult
     */
    @PostMapping(value = "/add", headers = API_VERSION_NAME + "=v1")
    @ResponseBody
    public AjaxResult addSave(@Valid TestBlockT testBlockT) {
        List<TestBlockT> list = new ArrayList();
        TestBlockT testBlockT1 = new TestBlockT();
        testBlockT1.setBlockId("1");
        testBlockT1.setBlockName("oracle");
        list.add(testBlockT1);
        TestBlockT testBlockT2 = new TestBlockT();
        testBlockT2.setBlockId("2");
        testBlockT2.setBlockName("mysql");
        list.add(testBlockT2);
        Boolean result = testBlockTService.saveBatch(list);
        System.out.println(result);
        return AjaxResult.success(HttpStatusCode.POST_SUCCESS_CODE, "成功");
    }



}

7、效果

调用接口日志里就是批量插入、数据库表里数据也有了

 

 

标签:util,little,批量,tiger,testblockt,plus,mybatis,import,public
From: https://www.cnblogs.com/yclh/p/17596137.html

相关文章

  • 在 MyBatis Plus 中,使用 Map 来实现数据库操作
    假设我们有一个数据库表Student,包含字段id、name和age,下面是使用MyBatisPlus和Map实现增删改查的示例:1、插入数据:importcom.baomidou.mybatisplus.core.conditions.query.QueryWrapper;importcom.baomidou.mybatisplus.extension.service.additional.query.impl.La......
  • Mybatis
    day01-mybatis简介--入门-原生Dao开发.sqlconfig.xml配置介绍 mybatis的入门-根据用户id查询用户信息1.导入依赖jar包2.配置SqlMapConfig.xml3.配置log4j.properties4.在工程目录下创建pojo5.配置sql查询的映射文件6.加载映射文件 sql映射文件user.xmlid:sqlid,......
  • Mybatis学习(1)——mybatis介绍 & 入门案例 & 全局配置文件详解 & 增删改查 + mybatis事
    Mybatis学习(1)——mybatis介绍&入门案例&全局配置文件详解&增删改查+mybatis事务&mapper.xml文件#{}和${}&动态SQL入门原文链接:https://blog.csdn.net/Pireley/article/details/131520252目录引出一、mybatis是啥1.官网&ORM(ObjectRelationMapping)对象关......
  • Mybatis中的Mapper.xml映射文件sql查询接收多个参数 分页查询 sql语句动态生成的时候,
    Mybatis中的Mapper.xml映射文件sql查询接收多个参数分页查询sql语句动态生成的时候,使用${},sql语句中某个参数进行占位的时候用#{}原文链接:https://blog.csdn.net/Ep_Little_prince/article/details/100687848​我们都知道,在Mybatis中的Mapper.xml映射文件可以定制动态SQ......
  • 批量导入书签pdf
    FreePic2Pdf快速为pdf文档添加带有超链接的书签目录ZhanweiLiu于2020-05-0613:53:40发布3137收藏14分类专栏:书签PDF版权书签同时被2个专栏收录1篇文章0订阅订阅专栏PDF1篇文章0订阅订阅专栏FreePic2Pdf快速为pdf文档添加带有超链接的书签目录下载FreePic2Pdf提......
  • VUE3、ElementPlus 重构若依vue2 表单构建功能
    Vue3+ElementPlus+Vite重构若依Vue2表单构建功能若依官方的Vue3版本发布已经有段时间了,就是这个表单构建功能一直没有安排计划去适配到Vue3!前段时间公司需要做个类似的功能,就直接借鉴若依Vue2的来直接改了吐槽下:vuedraggable-vue3坑真多,官方文档一言难尽,现在不推荐使......
  • mybatis 递归查询
    java实体@DatapublicclassCodeTree{privateLongid;privateStringpid;privateStringcode;privateStringname;privateList<CodeTree>children;}mapper接口//根据id递归查询其子节点(不包含当前节点)List<CodeTree>listByrecursion(......
  • python + 批量提取文件中exce数据
    importpandasaspdimportos#创建一个空的数据框列表data_frames=[]#获取当前脚本的目录路径current_directory=os.getcwd()folder_path=os.path.join(current_directory,'excel')#相对路径:excel文件夹所在的位置#遍历文件夹中的所有Excel文件forfile......
  • 1_MyBatis入门
    1_MyBatis入门原生JDBC实现CURD的问题1编码繁琐2需要我们自己将结果集映射成对象3性能不太好 连接池缓存4SQL语句和java代码的耦合度特别高5……MyBatis本是Apache的一个开源项目iBatis,2010年这个项目由ApacheSoftwareFoundation迁移到了GoogleCode,且改名......
  • 4_MyBatis传统DAO模式开发
    4_MyBatis传统DAO模式开发普通模式,也称为传统DAO模式,就是在传统DAO模式下,定义接口和实现类,如 interfaceEmpDao  classEmpDaoImplimplementsEmpDao.  在实现类中,用SQLSession对象调用selectinsertdeleteupdate 等方法实现.目前极为少见.在传统模式下,我们需要......