当前位置: 首页 > news >正文

【业务功能篇52】Springboot+mybatis mysql开启批量执行sql参数 allowMultiQueries=true

allowMultiQueries=true参数的作用:

  1. 可以在sql语句后携带分号,实现多语句执行。
  2. 可以执行批处理,同时发出多个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参数的作用&#xff1a; 可以在sql语句后携带分号&#xff0c;实现多语句执行。可以执行批处理&#xff0c;同时发出多个SQL语句。 在application-xxx.xml配置文件中&#xff0c;配置数据库的信息 spring:datasource:dynamic:primary: mysqldb # 默认数…...

StableDiffusion 换脸实现

先看效果&#xff1a; 想要换的脸&#xff1a; 想要把脸放到的目标图片&#xff1a; 实现方案&#xff1a; StableDiffusionroop&#xff08;本次实验基于roopV0.02版本&#xff09; 1/安装SD&#xff0c;模型选择 DreamShaper,Sampler使用 Euler a 2/安装roop插件 roop插…...

直播平台源码开发提高直播质量的关键:视频编码和解码技术

在互联网日益发展的今天&#xff0c;直播平台成为人们互联网生活的主力军&#xff0c;直播平台功能的多样化与智能化使我们的生活有了极大地改变&#xff0c;比如短视频功能&#xff0c;它让我们既可以随时随地去发布自己所拍摄到的东西让世界各地的用户看到&#xff0c;也能让…...

如何使用 PHP 更新数据到数据库?

首先&#xff0c;你需要有个数据库&#xff0c;对吧&#xff1f;如果你还没有的话&#xff0c;可以用PHP的MySQL扩展来创建一个。不过&#xff0c;在此之前&#xff0c;你需要确保你的服务器已经安装了MySQL&#xff0c;并且你的PHP环境已经支持MySQL扩展。 好了&#xff0c;现…...

NLP masked_tokens[]、token_masks[]是什么?

1、masked_tokens[]、token_masks[]介绍 masked_tokens和token_masks两个列表用于存储mask处理后的token&#xff08;分词&#xff09;结果和对应的mask标志。 masked_tokens列表存储经过mask处理后的分词结果。 token_masks列表存储与每个分词结果对应的mask标志。 2、示例…...

aoa_android工程编译注意事项

1. android studio 版本 &#xff1a; 3.0.0 Android Studio 下载文件归档 | Android 开发者 | Android Developers (google.cn) 下载地址&#xff1a; https://redirector.gvt1.com/edgedl/android/studio/install/3.0.0.18/android-studio-ide-171.4408382-windows.ex…...

java篇 类的进阶0x06:可见性修饰符(访问修饰符)

文章目录 可见性修饰符&#xff08;访问修饰符&#xff09;成员变量都应该是 private构造方法可以是 private 的public 修饰的东西尽量不要改动非 public 的类&#xff0c;类名可以不和文件名相同protected 继承专属的访问控制 可见性修饰符&#xff08;访问修饰符&#xff09;…...

Java 贪心算法经典问题解决

文章目录 分金条题目思路代码实现测试用例以及结果输出 花费资金做项目最大收益题目思路代码实现测试用例以及结果输出 预定会议室题目思路代码实现测试用例以及结果输出 取中位数题目思路代码实现测试用例以及结果输出 最低字典序题目思路代码实现测试用例以及结果输出 结语 分…...

所有docker命令无效,解决办法

目录 ■前言 今天使用docker时&#xff0c;所有命令无效 ■解决办法如下 1.停止docker服务 2.查看状态 3.删除之前的docker相关的文件 4.再次查看状态 5.使用相关命令 &#xff08;好用了&#xff09; 6.重新下载镜像 ■前言 今天使用docker时&#xff0c;所有命令无…...

系列一、创建者模式

一、概述 创建者模式的主要关注点是"怎样创建对象?"&#xff0c;它的主要特点是"将对象的创建与使用分离"。这样可以降低系统的耦合度&#xff0c;使用者不需要关注对象的创建细节。 二、分类 单例模式工厂方法模式抽象工厂模式原型模式建造者模式...

数据库系列:覆盖索引和规避回表

1 介绍 在MySQL数据库查询过程中&#xff0c;索引覆盖和避免不必要的回表&#xff0c;是减少检索步骤&#xff0c;提高执行效率的有效手段。下面从这两个角度分析如何进行MySQL检索提效。 2 数据准备 模拟一个500w数据容量的部门表 emp&#xff0c;表结构如下&#xff0c;并…...

java Spring Boot上线运维 启动jar时控制台调整零时变量

前面的文章 java 打包Spring Boot项目&#xff0c;并运行在windows系统中和将Spring Boot项目打包部署到阿里云linux服务器讲述了Spring Boot项目打包部署的过程 但是 这里 我们可能会遇到一种情况 此时 我们服务器 java项目占用了 80端口 但我们需要放上去一个更重要的东西&am…...

java后端校验

Java 后端数据校验 一、概述 当我们想提供可靠的 API 接口&#xff0c;对参数的校验&#xff0c;以保证最终数据入库的正确性&#xff0c;是 必不可少 的活。比如下图就是 我们一个项目里 新增一个菜单校验 参数的函数&#xff0c;写了一大堆的 if else 进行校验&#xff0c;…...

PowerPoint如何修改“默认保存路径”?

很多时候&#xff0c;我们做好PPT后都要保存&#xff0c;一般会保存在创建PPT的文件夹里&#xff0c;或者另外设置保存的路径。 如果经常需要制作PPT&#xff0c;又不想每次都要重新选择保存位置&#xff0c;我们可以创建或修改“默认保存路径”&#xff0c;这样每次关闭PPT后…...

【PMP】有没有项目经理能看得懂这九张图?求挑战

这九张图&#xff0c;全是圈圈我的肺腑之言啊&#xff01;谁痛谁知道&#xff01; 做技术时&#xff0c;就想着30岁就转管理&#xff0c;管理岗位赚得多&#xff0c;结果发现全是烟雾弹。 做技术和代码打交道&#xff0c;做管理跟人打交道。天天开不完的会、说不完的话&#xf…...

ES6学习记录—自己记录一直更新版

1. 什么是ECMA 全称&#xff1a;European computer manufacturers association欧洲计算机制造联合会; 2、它的标准名单中的&#xff1a;ECMA — 262脚本语言的规范&#xff1a;规范化脚本语言&#xff0c;叫ECMAScript ( 一定要记住)&#xff1b;像ES5 ES6就是这样来的&#xf…...

linux操作gpio的一些记录

在linux里面使用GPIO的一些知识点记录如下&#xff1a; 一、驱动里面操作GPIO 在linux内核里面如果 pinctrl 子系统将一个 PIN 复用为 GPIO 的话&#xff0c;那么就可以用gpio 子系统提供的 API 函数操做gpio&#xff0c;比如设置 GPIO为输入输出&#xff0c;读取 GPIO 的值等…...

目前新能源汽车充电桩的发展受到哪些不利因素的影响?

目前新能源汽车充电桩的发展受到哪些不利因素的影响? 一是安装难&#xff0c;很多老旧小区没有充电桩配套施工规范&#xff0c;充电桩建设比较难&#xff0c;受到充电容量不足电表箱供电等局限性的制约&#xff0c;同时缺乏充电桩配套设施的统一规划&#xff0c;小区内只能安装…...

jenkins

Gitlab添加钩子 测试钩子 添加完成后&#xff0c;下面会出现钩子选择。点击test中的&#xff0c;push event。 出现successful&#xff0c;既添加成功。 如果添加失败&#xff0c;报错&#xff0c;更改Network...

基于深度学习的图像分割技术探究

导言&#xff1a; 图像分割是计算机视觉领域的重要任务&#xff0c;旨在将图像划分为不同的语义区域&#xff0c;实现对图像中感兴趣物体的定位和提取。深度学习作为图像分割的新兴技术&#xff0c;通过卷积神经网络&#xff08;CNN&#xff09;等模型&#xff0c;取得了显著的…...

Face3D.ai Pro零基础入门:5分钟从照片到3D人脸,小白也能玩转

Face3D.ai Pro零基础入门&#xff1a;5分钟从照片到3D人脸&#xff0c;小白也能玩转 1. 引言&#xff1a;从照片到3D人脸的魔法 想象一下&#xff0c;用手机随手拍一张自拍&#xff0c;5分钟后就能得到一个可以360度旋转的3D人脸模型。这不是科幻电影里的场景&#xff0c;而是…...

Kandinsky-5.0-I2V-Lite-5s多风格测试:卡通、写实、水墨画生成效果对比

Kandinsky-5.0-I2V-Lite-5s多风格测试&#xff1a;卡通、写实、水墨画生成效果对比 1. 开场&#xff1a;当静态艺术遇见动态魔法 想象一下&#xff0c;你珍藏的卡通插画突然活了过来&#xff0c;水墨画中的山水开始流动&#xff0c;写实照片里的场景有了生命。这正是Kandinsk…...

Nano-Banana多场景落地:汽车内饰配件爆炸图AI辅助设计案例

Nano-Banana多场景落地&#xff1a;汽车内饰配件爆炸图AI辅助设计案例 1. 引言&#xff1a;当汽车设计遇上AI拆解美学 想象一下&#xff0c;你是一位汽车内饰设计师。面对一个复杂的中央扶手总成&#xff0c;里面有几十个塑料件、卡扣、线束和电子模块。你需要向客户、工程师…...

从XML解析到特征提取:手把手搞定Wikipedia多模态数据集的预处理全流程

从XML解析到特征提取&#xff1a;Wikipedia多模态数据集预处理实战指南 引言 在机器学习项目中&#xff0c;数据预处理往往占据整个流程70%以上的工作量。特别是面对Wikipedia这类包含文本和图像的多模态数据集时&#xff0c;工程师需要同时处理XML文档解析、图像特征提取、跨模…...

别只盯着代码了!用Multisim仿真带你理解74LS90和555的‘数字心脏’

用Multisim仿真揭秘数字电路&#xff1a;从555脉冲到74LS90计数的实战之旅 当你第一次看到数字电路时&#xff0c;是否觉得那些密密麻麻的芯片引脚和抽象的逻辑符号令人望而生畏&#xff1f;作为一名软件开发者&#xff0c;我曾经也有同样的困惑——直到发现Multisim这个神奇的…...

剧本杀教程生成指南2025,解析,轻松掌握创作技巧

剧本杀教程生成指南2025&#xff0c;解析&#xff0c;轻松掌握创作技巧剧本杀作为一种新兴的娱乐方式&#xff0c;近年来在全球范围内迅速流行。随着越来越多的人加入到剧本杀的创作和体验中&#xff0c;如何高效地创作出高质量的剧本成为了一个热门话题。本文将为你提供一份详…...

OpenClaw学习助手:Qwen3-4B自动整理技术文档实战

OpenClaw学习助手&#xff1a;Qwen3-4B自动整理技术文档实战 1. 为什么需要AI文档整理助手 作为一个经常需要阅读大量技术文档的开发者&#xff0c;我发现自己长期陷入"收集-遗忘-重复阅读"的恶性循环。PDF里的关键知识点总是淹没在几十页的细节中&#xff0c;手动…...

SEO 对于SaaS产品销售有什么影响

SEO对于SaaS产品销售的重要性 在当前的数字化经济时代&#xff0c;软件即服务&#xff08;SaaS&#xff09;产品正日益成为各行各业的首选工具。仅拥有优质的产品还远远不够&#xff0c;如何让潜在客户能够找到并选择你的产品至关重要。这时&#xff0c;搜索引擎优化&#xff…...

Dify Agent实战:手把手教你用思维链(CoT)模式打造一个能“思考”的AI助手

Dify Agent实战&#xff1a;用思维链&#xff08;CoT&#xff09;构建会思考的AI助手 在当今AI技术快速发展的背景下&#xff0c;如何让AI助手不仅能回答问题&#xff0c;还能像人类一样"思考"并解决复杂问题&#xff1f;这正是思维链(Chain of Thought, CoT)技术要解…...

高级应用:将Decision Transformer部署到生产环境的完整流程

高级应用&#xff1a;将Decision Transformer部署到生产环境的完整流程 【免费下载链接】decision-transformer Official codebase for Decision Transformer: Reinforcement Learning via Sequence Modeling. 项目地址: https://gitcode.com/gh_mirrors/de/decision-transfo…...