Mybatisplus真实高效批量插入附容错机制

news2024/11/19 3:19:26

文章目录

    • 概要
    • 优化
    • 技术细节
    • 小结

概要

提示:mybatisplus自带真实批量插入

在mybatisplus已知常用批量插入为继承Iservice里的saveBatch方法和saveOrUpdateBatch方法,
进入源码可知,此两种方法的插入均为单条插入,如图:
其中可看出
其中可看出,实则调用的sql方法为:
在这里插入图片描述
则此sql插入效率跟单条插入无异,只是省了一些代码操作。

优化

此时我们可以自定义mybatisplus的SqlInjector
具体操作为:

class EasySqlInjector : MppSqlInjector() {
    override fun getMethodList(mapperClass: Class<*>?): MutableList<AbstractMethod> {
        val methodList = super.getMethodList(mapperClass)
        methodList.add(InsertBatchSomeColumn())
        return methodList
    }
}

继承mybatisplus原先自带的sql方法,并加入**InsertBatchSomeColumn()方法,进入此方法源码查看,
在这里插入图片描述
它的实现方法相当于mybatisplus的
**标签
在这里插入图片描述

技术细节

这里我们要利用spring的IOC把它交给Spring管理:

@Configuration
class MyatisPlusConfiguration {

    @Bean
    fun mybatisPlusInterceptor(): MybatisPlusInterceptor {
        val interceptor = MybatisPlusInterceptor()
        //向Mybatis过滤器链中添加分页拦截器
        interceptor.addInnerInterceptor(PaginationInnerInterceptor(DbType.POSTGRE_SQL))
        //还可以添加i他的拦截器
        return interceptor
    }
    @Primary
    @Bean
    fun easySqlInjector() : EasySqlInjector{
        return EasySqlInjector()
    }
}

后续的mapper直接继承BaseMapper然后添加此方法即可使用:

interface FqMinMapper : MppBaseMapper<FqpfminDto> {
    fun insertBatchSomeColumn(entityList: List<FqpfminDto>): Int

}

提示:这里批量插入时,如果一个出错可能会整批插入失败
这里最好给表定义一个规则,如主键重复时插入忽略异常抛出null,在insert时加IGNORE
也需要注意各数据库对于批量插入字节的限制。

小结

此方法提高插入速度数据量越大越明显,当然如果此需求无法满足,也可重写mybatisplus的sql注入器源码,然后自己注入去实现需要的功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/562996.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

果汁脱色树脂,制糖行业脱色,医药行业脱色

具有控制孔径的大孔强碱性Ⅰ型阴特种脱色用离子交换树脂 Tulsimer A-722是一款具有便于颜色和有机物去除的控制孔径的&#xff0c;专门开发的大孔强碱性Ⅰ型阴离子交换树脂。 Tulsimer A-722 &#xff08;氯型&#xff09;专门应用于糖浆脱色。 Tulsimer A-722由于其本身…

字节真的是宇宙尽头吗?

身边在字节的朋友很多人抱怨很卷&#xff0c;但卷到何种程度?很多人没有直观感受。某乎上一个问题(在字节跳动工作是怎样的?)点赞排名第一的回答生动的解释了字节的卷。 租房的舍友在字节工作。 舍友主卧&#xff0c;我次卧。 合租两个月了&#xff0c;我没见过舍友长什么样。…

Python实现ACO蚁群优化算法优化Catboost回归模型(CatBoostRegressor算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蚁群优化算法(Ant Colony Optimization, ACO)是一种源于大自然生物世界的新的仿生进化算法&#xff0c…

Bark(Suno AI) 搭建及使用

前言 Bark 是由Suno AI创建的基于转换器的文本到音频模型。Bark 可以生成高度逼真的多语言语音以及其他音频 - 包括音乐、背景噪音和简单的音效。该模型还可以产生非语言交流&#xff0c;如大笑、叹息和哭泣。 1: 环境 win10 rtx 3060TI bark 下载地址 https://github.com/sun…

Jenkins配置Powershell脚本,通过脚本控制开发/测试服务器

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:无尽的折腾后,终于又回到了起点,工控,我来了 !序言 因为需要在Windows上编译和部署程序,因此需要借助PowerShell的脚本力量完成这些事情。 目标…

3年工作经验裸辞,有点后悔了

2019年毕业&#xff0c;现在有3年的软件测试工作经验&#xff0c;刚毕业前半年在一家知名上市公司&#xff0c;后面则进入一家传统行业公司待到现在2年半。 由于看不到技术成长以及其他原因&#xff0c;上上周辞职了&#xff0c;目前交接中&#xff0c;下个月中旬就得离开了&a…

Call for Papers丨第十七届全国知识图谱与语义计算大会,AI Open联合征稿

第十七届全国知识图谱与语义计算大会&#xff08;CCKS 2023&#xff09;征稿中&#xff0c;并与《AI Open》开展联合征稿&#xff0c;征稿截止日期为2023年6月2日。 全国知识图谱与语义计算大会&#xff08;China Conference on Knowledge Graph and Semantic Computing&#x…

推荐一个AI导航网站 - 收录的都是热门AI工具

AI导航 | AI工具 | AI之旅导航是只收录最新最实用AI工具的人工智能导航网站 最近半年使用了大量的AI人工智能工具&#xff0c;收藏夹已经收藏不过来了。 所以搭建这个导航网站&#xff0c;管理所有收藏的热门AI网站&#xff0c;同时像大家分享&#xff0c; 网站没有任何广告…

esp32 下蓝牙播放音乐歌词的获得

以esp32 或者esp8266 作为蓝牙音乐接收端是可以获取到歌词的。 走了不少弯路&#xff0c;这方面还是资料有缺失&#xff0c;其实这是很简单的事情。 使用了A2DP这个库&#xff0c;GitHub - pschatzmann/ESP32-A2DP: A Simple ESP32 Bluetooth A2DP Library (to implement a M…

微信外h5跳转小程序3中方式

1.转短链接跳转小程序&#xff08;支持微信内外&#xff09; 目前限制50wc次 先转短链接 文档&#xff1a;获取scheme码 | 微信开放文档 2.微信公众号h5内跳转小程序&#xff08;支持微信内&#xff09; 微信公众号h5页面跳转微信小程序_程序007的博客-CSDN博客 3.使用云函…

对Android 说Hello ——Qt For Android

1. Qt 安卓环境搭建 平台&#xff1a;Qt5.15.2 官网教程&#xff1a; Getting Started with Qt for Android | Qt 5.15 网上的教程&#xff1a; qt5.15.2配置android_加油吧&#xff0c;小杜的博客-CSDN博客 注意 &#xff1a;注意ndk的路径中不能有空格&#xff0c;我之前…

【AIGC】AI欺诈,做好以下几点,无需忧虑

文章目录 前言列举几种AI欺诈的形式以及其识别方法1.AI深度学习生成的假视频、假图片2.AI自动生成的德文或语音3.AI自动注册账号和刷数据4.AI智能防御机制 如何预防&#xff1f;1.提高公众警惕性2.发展AI监测技术3.加强关键领域的人工审核4.完善法律法规5.国际合作与交流6.开源…

图表控件LightningChart .NET v.10.4.1已经发布!新增DataCursor功能、ZoomBar自定义控件

LightningChart.NET原名LightningChart Ultimate SDK&#xff0c;是一款高性能WPF和Winforms图表,可以实时可视化多达1万亿个数据点。LightningChart完全由GPU加速&#xff0c;并且性能经过优化&#xff0c;可用于实时显示海量数据-超过10亿个数据点。 LightningChart包括广泛的…

bmp转jpg怎么转?bmp转换jpg的几个方法

bmp转换jpg的几个方法~什么是BMP呢&#xff1f;BMP是位图文件格式的一种&#xff0c;全称为Bitmap&#xff08;位图&#xff09;&#xff0c;是一种基于像素的图像文件格式。BMP是Windows操作系统中最常用的图像格式之一&#xff0c;通常以.bmp或.dib作为文件扩展名。BMP文件格…

LabVIEWCompactRIO 开发指南32 确保无损数据传输

LabVIEWCompactRIO 开发指南32 确保无损数据传输 如果无损数据传输很重要&#xff0c;或者如果要将数据从多个I/O通道传输到同一DMA FIFO&#xff0c;则必须能够监控DMA机制的状态并对发生的任何故障做出反应。在FPGADMA写入节点上&#xff0c;超时通常表示DMA缓冲器已满。当…

华为OD机试之处理器问题(Java源码)

处理器问题 题目描述 某公司研发了一款高性能AI处理器。每台物理设备具备8颗AI处理器&#xff0c;编号分别为0、1、2、3、4、5、6、7。 编号0-3的处理器处于同一个链路中&#xff0c;编号4-7的处理器处于另外一个链路中&#xff0c;不通链路中的处理器不能通信。 如下图所示。…

IEEE独立出版 | 第七届计算机科学与智能控制国际会议(ISCSIC 2023)

会议简介 Brief Introduction 第七届计算机科学与智能控制国际会议(ISCSIC 2023) 会议时间&#xff1a;2023年10月27日-29日 召开地点&#xff1a;中国南京 大会官网&#xff1a; ISCSIC 2023-2023 7th International Symposium on Computer Science and Intelligent Control(I…

大型企业建设财务共享中心需要重视的5个核心要素

随着数字化技术和财务共享的发展&#xff0c;财务共享建设正逐步深化。为发挥企业财务共享中心的最大价值&#xff0c;用友网络财务共享专家唐勇提出了5个关键点&#xff0c;需要企业重视&#xff1a; 从整体财务职能转型的视角规划财务共享中心的定位&#xff1a; 企业在规划…

为年迈母亲打造的“亲情关怀”视频聊天软件

写在前面 母亲的眼神越来越不好了&#xff0c;长期干农活的手也愈加粗糙&#xff0c;智能手机本是一个平常之物&#xff0c;她确无缘使用&#xff0c;现在仍在不断更换着“翻盖手机”。为了能让她绕开微信视频聊天那些繁琐而容易点错的功能&#xff0c;程序员的我“开发”下面…

如何通过QQ进行手机号溯源

0x01 通过在线网址查询 Q绑在线查询&#xff1a;http://2k.24kz.cn/ 0x02 非数据库查询方法 如果上述的网址查询不到信息的号。会提示说没有找到 可能说明数据库中并无该qq号所绑定手机号的信息 开始正题&#xff1a; 第一步&#xff1a;点击添加账号&#xff0c;复制其QQ账…