mybatis-plus数据批量插入
为了提高数据处理效率,大量数据需要插入数据时可以采用批量数据插入的策略提高数据插入的效率。
如下是实现方法
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、效果
调用接口日志里就是批量插入、数据库表里数据也有了


mybatis-plus数据批量插入的更多相关文章
- MyBatis 使用 foreach 批量插入
MyBatis 使用 foreach 批量插入 参考博文 老司机学习MyBatis之动态SQL使用foreach在MySQL中批量插入 使用MyBatis一次性插入多条数据时候可以使用 <for ...
- 使用事务操作SQLite数据批量插入,提高数据批量写入速度,源码讲解
SQLite数据库作为一般单机版软件的数据库,是非常优秀的,我目前单机版的软件产品线基本上全部替换Access作为优选的数据库了,在开发过程中,有时候需要批量写入数据的情况,发现传统的插入数据模式非常 ...
- C#中几种数据库的大数据批量插入
C#语言中对SqlServer.Oracle.SQLite和MySql中的数据批量插入是支持的,不过Oracle需要使用Orace.DataAccess驱动. IProvider里有一个用于实现批量插 ...
- SQL SERVER 使用BULK Insert将txt文件中的数据批量插入表中(1)
1/首先建立数据表 CREATE TABLE BasicMsg( RecvTime FLOAT NOT NULL , --接收时间,不存在时间相同的数据 AA INT NOT NULL, --24位地 ...
- C#:几种数据库的大数据批量插入
在之前只知道SqlServer支持数据批量插入,殊不知道Oracle.SQLite和MySql也是支持的,不过Oracle需要使用Orace.DataAccess驱动,今天就贴出几种数据库的批量插入解 ...
- c#数据批量插入
由于之前面试中经常被问到有关EF的数据批量插入问题,今天以Sqlserver数据库为例,对.net中处理数据批量处理的方案进行了测试对比. 1.四种测试方案 (1)普通的EF数据批量插入:即调用DbS ...
- C#:几种数据库的大数据批量插入(转)
在之前只知道SqlServer支持数据批量插入,殊不知道Oracle.SQLite和MySql也是支持的,不过Oracle需要使用Orace.DataAccess驱动,今天就贴出几种数据库的批量插入解 ...
- C#:几种数据库的大数据批量插入 - faib
在之前只知道SqlServer支持数据批量插入,殊不知道Oracle.SQLite和MySql也是支持的,不过Oracle需要使用Orace.DataAccess驱动,今天就贴出几种数据库的批量插入解 ...
- PHP如何将多维数组中的数据批量插入数据库?
PHP将多维数组中的数据批量插入到数据库中,顾名思义,需要用循环来插入. 1.循环insert into 语句,逐渐查询 <?php /* www.qSyz.net */ @mysql_conn ...
- c#几种数据库的大数据批量插入(SqlServer、Oracle、SQLite和MySql)
这篇文章主要介绍了c#几种数据库的大数据批量插入(SqlServer.Oracle.SQLite和MySql),需要的朋友可以了解一下. 在之前只知道SqlServer支持数据批量插入,殊不知道Ora ...
随机推荐
- java协程操作mysql数据库
我的项目: nanshaws/nettyWeb: 复习一下netty,并打算做一个web项目出来 (github.com) 最近在项目中分别添加了虚拟线程操作mysql数据库,和用协程操作mysql数 ...
- What's past is prologue
凡是过去,皆为序章.爱所有人,信任少数人,不负任何人.我荒废了时间,时间便把我荒废了. 在灰暗的日子中,不要让冷酷的命运窃喜:命运既然来凌辱我们,就应该用处之泰然的态度予以报复.明智的人决不坐下来为失 ...
- C++学习笔记四:变量与数据类型(布尔型与字符型)
今天来整理一下布尔型和字符型变量的基本使用方法1)布尔型变量1. 声明和初始化一个布尔类型的变量占据1 Byte空间,数值0代表false,其他非0数值代表true bool red_light {f ...
- Salesforce LWC学习(四十七) 标准页面更新以后自定义页面如何捕捉?
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platfor ...
- ElasticSearch之配置
ElasticSearch主要的配置文件,如下: elasticsearch.yml,ElasticSearch的相关参数. jvm.options,JVM的相关参数. log4j2.properti ...
- OpenFeign:Spring Cloud声明式服务调用组件
OpenFeign:Spring Cloud声明式服务调用组件 问题总结 OpenFeign? Feign VS OpenFeign? OpenFeign实现远程服务调用? OpenFeign超时控制 ...
- 轻量对象存储 LighthouseCOS 用户实践征文
产品使用攻略.上云技术实践,有奖征集,多重好礼等您带回家- 存储桶一键挂载轻量应用服务器,简单易用,腾讯云轻量对象存储用户实践征文活动特惠:腾讯云轻量云专场特惠活动. 投稿说明 注册/登录腾讯云账号, ...
- Shiro 的基本使用
简介 Apache Shiro 是一个强大的.灵活的开源安全框架,可以干净地处理验证.授权.企业会话管理和加密等功能 相关特性 Apache Shiro 具有的主要特性如下图所示: 主要关注的地方在于 ...
- 【Tinyui】极简跨平台桌面端小工具开发框架
导航 Github Gitee 开发指南 用户手册 说明 在产品或项目工作中,可能会遇到需要给非开发人员或者客户提供简易的PC小工具,这些小工具通常用户交互比较简单:功能也不复杂:同时需要支持多平台以 ...
- Spring表达式语言(SPEL)学习(03)
rootObject 在表达式中直接写name和getName(),这时候Expression是无法解析的,因为其不知道name和getName()对应什么意思 @Test public void t ...