【业务功能篇52】Springboot+mybatis mysql开启批量执行sql参数 allowMultiQueries=true
allowMultiQueries=true参数的作用:
- 可以在sql语句后携带分号,实现多语句执行。
- 可以执行批处理,同时发出多个SQL语句。
在application-xxx.xml配置文件中,配置数据库的信息
spring:datasource:dynamic:primary: mysqldb # 默认数据源datasource: mysqldb:driverClassName: org.mariadb.jdbc.Driverurl: jdbc:mysql://localhost:3306/data_dev?useUnicode=yes&characterEncoding=UTF-8&useAffectedRows=true&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false
实例 dao层xml:
- 逐条更新,但一次提交给MySQL服务器而已。
- 利用foreach 遍历循环,传入的list集合数据,批量的进行update
<update id="updateStudentBatch" parameterType="java.util.List"><foreach collection="list" item="item" index="index">UPDATE mutest.student<set><if test="item.name != null">name=#{item.name},</if><if test="item.age != null">age=#{item.age}</if></set>WHEREid=#{item.id};</foreach>
</update>
批处理 rewriteBatchedStatements=true
关于rewriteBatchedStatements这个参数:当前项目中未使用过
- MySQL的JDBC连接的url中要加rewriteBatchedStatements参数,并保证5.1.13以上版本的驱动,才能实现高性能的批量插入。
- MySQL JDBC驱动在默认情况下会无视executeBatch()语句,把我们期望批量执行的一组sql语句拆散,一条一条地发给MySQL数据库,批量插入实际上是单条插入,直接造成较低的性能。
- 只有把rewriteBatchedStatements参数置为true, 驱动才会帮你批量执行SQL
- 另外这个选项对INSERT/UPDATE/DELETE都有效
- 添加rewriteBatchedStatements=true这个参数后的执行速度比较:
- 同个表插入一万条数据时间近似值:
- JDBC BATCH 1.1秒左右 > Mybatis BATCH 2.2秒左右 > 拼接SQL 4.5秒左右
- demo:
- master.jdbc.url=jdbc:mysql://112.126.84.3:3306/outreach_platform?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&rewriteBatchedStatements=true
ps:mysql的话只要在url后面加上&rewriteBatchedStatements=true即可,但是sqlServer则需要以分号分隔;rewriteBatchedStatements=true
相关文章:
【业务功能篇52】Springboot+mybatis mysql开启批量执行sql参数 allowMultiQueries=true
allowMultiQueriestrue参数的作用: 可以在sql语句后携带分号,实现多语句执行。可以执行批处理,同时发出多个SQL语句。 在application-xxx.xml配置文件中,配置数据库的信息 spring:datasource:dynamic:primary: mysqldb # 默认数…...
StableDiffusion 换脸实现
先看效果: 想要换的脸: 想要把脸放到的目标图片: 实现方案: StableDiffusionroop(本次实验基于roopV0.02版本) 1/安装SD,模型选择 DreamShaper,Sampler使用 Euler a 2/安装roop插件 roop插…...
直播平台源码开发提高直播质量的关键:视频编码和解码技术
在互联网日益发展的今天,直播平台成为人们互联网生活的主力军,直播平台功能的多样化与智能化使我们的生活有了极大地改变,比如短视频功能,它让我们既可以随时随地去发布自己所拍摄到的东西让世界各地的用户看到,也能让…...
如何使用 PHP 更新数据到数据库?
首先,你需要有个数据库,对吧?如果你还没有的话,可以用PHP的MySQL扩展来创建一个。不过,在此之前,你需要确保你的服务器已经安装了MySQL,并且你的PHP环境已经支持MySQL扩展。 好了,现…...
NLP masked_tokens[]、token_masks[]是什么?
1、masked_tokens[]、token_masks[]介绍 masked_tokens和token_masks两个列表用于存储mask处理后的token(分词)结果和对应的mask标志。 masked_tokens列表存储经过mask处理后的分词结果。 token_masks列表存储与每个分词结果对应的mask标志。 2、示例…...
aoa_android工程编译注意事项
1. android studio 版本 : 3.0.0 Android Studio 下载文件归档 | Android 开发者 | Android Developers (google.cn) 下载地址: https://redirector.gvt1.com/edgedl/android/studio/install/3.0.0.18/android-studio-ide-171.4408382-windows.ex…...
java篇 类的进阶0x06:可见性修饰符(访问修饰符)
文章目录 可见性修饰符(访问修饰符)成员变量都应该是 private构造方法可以是 private 的public 修饰的东西尽量不要改动非 public 的类,类名可以不和文件名相同protected 继承专属的访问控制 可见性修饰符(访问修饰符)…...
Java 贪心算法经典问题解决
文章目录 分金条题目思路代码实现测试用例以及结果输出 花费资金做项目最大收益题目思路代码实现测试用例以及结果输出 预定会议室题目思路代码实现测试用例以及结果输出 取中位数题目思路代码实现测试用例以及结果输出 最低字典序题目思路代码实现测试用例以及结果输出 结语 分…...
所有docker命令无效,解决办法
目录 ■前言 今天使用docker时,所有命令无效 ■解决办法如下 1.停止docker服务 2.查看状态 3.删除之前的docker相关的文件 4.再次查看状态 5.使用相关命令 (好用了) 6.重新下载镜像 ■前言 今天使用docker时,所有命令无…...
系列一、创建者模式
一、概述 创建者模式的主要关注点是"怎样创建对象?",它的主要特点是"将对象的创建与使用分离"。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。 二、分类 单例模式工厂方法模式抽象工厂模式原型模式建造者模式...
数据库系列:覆盖索引和规避回表
1 介绍 在MySQL数据库查询过程中,索引覆盖和避免不必要的回表,是减少检索步骤,提高执行效率的有效手段。下面从这两个角度分析如何进行MySQL检索提效。 2 数据准备 模拟一个500w数据容量的部门表 emp,表结构如下,并…...
java Spring Boot上线运维 启动jar时控制台调整零时变量
前面的文章 java 打包Spring Boot项目,并运行在windows系统中和将Spring Boot项目打包部署到阿里云linux服务器讲述了Spring Boot项目打包部署的过程 但是 这里 我们可能会遇到一种情况 此时 我们服务器 java项目占用了 80端口 但我们需要放上去一个更重要的东西&am…...
java后端校验
Java 后端数据校验 一、概述 当我们想提供可靠的 API 接口,对参数的校验,以保证最终数据入库的正确性,是 必不可少 的活。比如下图就是 我们一个项目里 新增一个菜单校验 参数的函数,写了一大堆的 if else 进行校验,…...
PowerPoint如何修改“默认保存路径”?
很多时候,我们做好PPT后都要保存,一般会保存在创建PPT的文件夹里,或者另外设置保存的路径。 如果经常需要制作PPT,又不想每次都要重新选择保存位置,我们可以创建或修改“默认保存路径”,这样每次关闭PPT后…...
【PMP】有没有项目经理能看得懂这九张图?求挑战
这九张图,全是圈圈我的肺腑之言啊!谁痛谁知道! 做技术时,就想着30岁就转管理,管理岗位赚得多,结果发现全是烟雾弹。 做技术和代码打交道,做管理跟人打交道。天天开不完的会、说不完的话…...
ES6学习记录—自己记录一直更新版
1. 什么是ECMA 全称:European computer manufacturers association欧洲计算机制造联合会; 2、它的标准名单中的:ECMA — 262脚本语言的规范:规范化脚本语言,叫ECMAScript ( 一定要记住);像ES5 ES6就是这样来的…...
linux操作gpio的一些记录
在linux里面使用GPIO的一些知识点记录如下: 一、驱动里面操作GPIO 在linux内核里面如果 pinctrl 子系统将一个 PIN 复用为 GPIO 的话,那么就可以用gpio 子系统提供的 API 函数操做gpio,比如设置 GPIO为输入输出,读取 GPIO 的值等…...
目前新能源汽车充电桩的发展受到哪些不利因素的影响?
目前新能源汽车充电桩的发展受到哪些不利因素的影响? 一是安装难,很多老旧小区没有充电桩配套施工规范,充电桩建设比较难,受到充电容量不足电表箱供电等局限性的制约,同时缺乏充电桩配套设施的统一规划,小区内只能安装…...
jenkins
Gitlab添加钩子 测试钩子 添加完成后,下面会出现钩子选择。点击test中的,push event。 出现successful,既添加成功。 如果添加失败,报错,更改Network...
基于深度学习的图像分割技术探究
导言: 图像分割是计算机视觉领域的重要任务,旨在将图像划分为不同的语义区域,实现对图像中感兴趣物体的定位和提取。深度学习作为图像分割的新兴技术,通过卷积神经网络(CNN)等模型,取得了显著的…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...
Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...
ui框架-文件列表展示
ui框架-文件列表展示 介绍 UI框架的文件列表展示组件,可以展示文件夹,支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项,适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...
加密通信 + 行为分析:运营商行业安全防御体系重构
在数字经济蓬勃发展的时代,运营商作为信息通信网络的核心枢纽,承载着海量用户数据与关键业务传输,其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级,传统安全防护体系逐渐暴露出局限性&a…...
CppCon 2015 学习:Time Programming Fundamentals
Civil Time 公历时间 特点: 共 6 个字段: Year(年)Month(月)Day(日)Hour(小时)Minute(分钟)Second(秒) 表示…...
【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)
旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据!该数据集源自2025年4月发表于《地理学报》的论文成果…...
【java面试】微服务篇
【java面试】微服务篇 一、总体框架二、Springcloud(一)Springcloud五大组件(二)服务注册和发现1、Eureka2、Nacos (三)负载均衡1、Ribbon负载均衡流程2、Ribbon负载均衡策略3、自定义负载均衡策略4、总结 …...
