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

Java实现Mysql批量插入与更新

第一、批量插入语句

    @Insert({"<script>","INSERT INTO TABLE_NAME ("+ "ID,"+ "IS_DELETE,"+ "GMT_CREATE,"+ "GMT_MODIFIED"+ ")VALUES","<foreach collection = 'list' item = 'item' separator = ','>","(" + "#{item.id},"+ "0,"+ "now(),"+ "now()"+ ")","</foreach>","</script>"})

第二、批量更新语句

    @Update("<script>"+ " UPDATE TABLE_NAME SET "+ " <trim prefix='OWNER_ID =case' suffix='end,'> "+" <foreach collection='list' item='item'> "+ " when ID = #{item.id} then #{item.ownerId} "+ " </foreach> "+" </trim> "+ " GMT_MODIFIED = NOW() "+ " WHERE ID in "+" <foreach collection='list' index='index' item='item' separator=',' open='(' close=')'> "+" #{item.id} "+" </foreach> "+ " </script>")

第三,工具类

public final class BatchHandler {private static final int BATCH_OPERATE_SIZE = 500;public static <T> void doBatch(List<T> coll,Consumer<Collection<T>> consumer) {doBatch(coll, BATCH_OPERATE_SIZE, consumer);}/*** @param coll:             分片集合* @param batchOperateSize: 分片size* @param consumer:         批量消费过程* @description 集合分片处理*/public static <T> void doBatch(List<T> coll,Integer batchOperateSize,Consumer<Collection<T>> consumer) {for (int i = 0; i < coll.size(); i += batchOperateSize) {if (i + batchOperateSize > coll.size()) {consumer.accept(coll.subList(i, coll.size()));} else {consumer.accept(coll.subList(i, i + batchOperateSize));}}}
}

第四、调用方式

BatchHandler.doBatch(list, paramList -> service.batchAdd((List<Object>) paramList));

欢迎大家积极留言交流学习心得,点赞的人最美丽!

相关文章:

Java实现Mysql批量插入与更新

第一、批量插入语句 Insert({"<script>","INSERT INTO TABLE_NAME (" "ID," "IS_DELETE," "GMT_CREATE," "GMT_MODIFIED" ")VALUES","<foreach collection list item item separator …...

李沐团队发布Higgs-Llama-3-70B,角色扮演专用模型

前言 近年来&#xff0c;大语言模型&#xff08;LLM&#xff09;在各个领域都展现出强大的能力&#xff0c;尤其是其在对话、写作、代码生成等方面的应用越来越广泛。然而&#xff0c;想要让 LLM 真正地融入人类社会&#xff0c;扮演各种角色&#xff0c;还需要具备更强大的角…...

2024年护网行动全国各地面试题汇总(4)作者:————LJS

面试过程及回答 自我介绍这里就如实回答的工作经历&#xff0c;参与的项目&#xff0c;尽量简短的把你参与的项目和成果说出来就行 使用过哪些设备&#xff0c;出现误报怎么办 天眼、EDR、全流量告警、态势感知、APT、蜜罐设备先去查看设备的完整流量日志等信息确认是否为误报&…...

秋招突击——6/11——复习{(树形DP)树的最长路径、电话号码的字母组合}——新作{重复序列中前最小的数字}

文章目录 引言复习树形DP——树的最长路径电话号码的字母组合 新作重复序列中前最小的数字个人实现参考实现 总结 引言 这两天可能有点波动&#xff0c;但是算法题还是尽量保证复习和新作一块弄&#xff0c;数量上可能有所差别。 复习 树形DP——树的最长路径 这道题是没有…...

Lua与C交互API接口总结

Lua与C交互 1. 常见Lua相关的C API压入元素查询元素获取元素检查元素栈的相关数据操作 2. C调用Lua核心调用函数示例 3. Lua调用C1. C函数注册到Lua&#xff08;lua_register&#xff09;示例2. 批量注册&#xff08;luaL_Reg&#xff09;示例 1. 常见Lua相关的C API 压入元素…...

DT浏览器很好用

简单的浏览器&#xff0c;又是强大的浏览器&#xff0c;界面简洁大方&#xff0c;操作起来非常流畅&#x1f60e;&#xff0c;几乎不会有卡顿的情况。 搜索功能也十分强大&#x1f44d;&#xff0c;能够快速精准地找到想要的信息。 而且还有出色的兼容性&#xff0c;各种网页都…...

RabbitMQ实践——在管理后台测试消息收发功能

在《RabbitMQ实践——在Ubuntu上安装并启用管理后台》中&#xff0c;我们搭建完RabbitMQ服务以及管理后台。本文我们将管理后台&#xff0c;进行一次简单的消息收发实验。 赋予admin账户权限 登录到管理后台&#xff0c;进入到用户admin的管理页面 点击“set permission”&a…...

vscode卡顿问题处理(vue-official插件)

vue官方扩展由volar升级为vue-official&#xff0c;部分人的ide会变得非常卡顿&#xff0c;这是由于vscode本身一些问题导致&#xff0c;如下图作者解释&#xff1a; 解决方式&#xff1a; 通过禁用Hybrid模式&#xff0c;不使用tsserver来接管语言支持&#xff0c;卡顿会缓解…...

使用Kube-Bench对Kubernetes进行安全检测

使用Kube-Bench对Kubernetes进行安全检测 1. 工具介绍 Kube-Bench是一个开源的Go语言工具&#xff0c;用于自动化检查Kubernetes集群是否符合CIS Kubernetes基准。这些基准包括一系列关于Kubernetes配置和部署安全性的建议和最佳实践。 Kube-Bench执行了一系列针对Kubernete…...

STM32开发过程中碰到的问题总结 - 1

文章目录 前言1. 怎么生成keil下可以使用的文件和gcc下编译使用的makefile2. STM32的时钟树3.怎么查看keil5下的编译工具链用的是哪个4. Arm编译工具链和GCC编译工具链有什么区别吗&#xff1f;5. 怎么查看Linux虚拟机是x86的还是aarch646. 怎么下载gcc-arm的编译工具链7.怎么修…...

hiberfil.sys文件在Windows系统作用

hiberfil.sys文件在Windows系统中起着关键的作用&#xff0c;主要涉及到计算机的休眠功能。以下是关于hiberfil.sys的详细解释&#xff1a; 定义与功能&#xff1a; hiberfil.sys是Windows休眠功能&#xff08;Windows Hibernation&#xff09;将内存数据与会话保存至硬盘所需…...

智能制造前沿:ARMxy工控机在机器人控制中

机器人控制系统正逐步成为现代制造业的核心引擎。在这个过程中&#xff0c;ARMxy工业计算机以其独特的优势&#xff0c;成为了驱动这一变革的关键力量。本文将以自动化装配线机器人为例&#xff0c;探讨ARMxy如何通过其低功耗、高性能特性&#xff0c;以及高度灵活性的设计&…...

【CS.AI】AI引领编程新时代:深度探索GitHub Copilot

文章目录 引言0. TOP TAKEAWAYS 重要要点1. Copilot的基本功能2. 技术原理3. 优势与局限优势局限 4. 使用体验4.1 初次使用4.2 在 JetBrains 全家桶中使用 GitHub Copilot1. 安装插件2. 配置插件3. 使用 GitHub Copilot 4.3 日常开发4.4 体验与反馈 5. 对开发者生态系统的影响5…...

Java:爬虫htmlunit抓取a标签

如果对htmlunit还不了解的话可以参考Java&#xff1a;爬虫htmlunit-CSDN博客 了解了htmlunit之后&#xff0c;我们再来学习如何在页面中抓取我们想要的数据&#xff0c;我们在学习初期可以找一些结构比较清晰的网站来做测试爬取&#xff0c;首先我们随意找个网站如下&#xff…...

电池包断路单元DBU的预充电电阻应用案例

当电池组接触器闭合到电机和逆变器上时&#xff0c;逆变器电容器中会有电流涌入。这种非常高的电流至少可能会使接触器老化&#xff0c;并可能永久损坏接触器。 因此&#xff0c;当我们关闭电池组上的接触器时&#xff0c;我们分三个步骤执行此操作&#xff1a; 1.关闭主负极…...

车载网络安全指南 系统层面开发阶段(六)

返回总目录->返回总目录<- 目录 前言 一、统层面产品开发启动 二、系统层面漏洞分析 三、网络安全策略具体化 四、确定网络安全技术需求 五、系统设计 六、系统集成与测试 七、网络安全验证 八、系统层面网络安全评估 九、系统层面产品开发阶段检查 十、产品发…...

Julia 文件读写

Julia 文件读写 Julia 是一种高性能的动态编程语言,特别适合于数值计算和科学计算。在数据处理和科学研究中,文件读写是一项基本且重要的技能。Julia 提供了一套丰富的函数和库来处理文件读写操作,使得文件操作变得简单而高效。 基本文件操作 打开和关闭文件 在 Julia 中…...

为何总是会失败

总是失败可能涉及多种因素&#xff0c;但这里有一些常见原因和对应的建议&#xff0c;或许可以帮助你找到问题所在并加以改进。 1. 目标不明确 原因 目标不清晰或设定过高会导致失望和挫折感。如果目标不明确&#xff0c;行动就会缺乏方向&#xff0c;导致效率低下和失败。 …...

【PB案例学习笔记】-21小大写金额转换

写在前面 这是PB案例学习笔记系列文章的第21篇&#xff0c;该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习&#xff0c;提高编程技巧&#xff0c;以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码&#xff0c;小凡都上传到了gite…...

12.实战私有数据微调ChatGLM3

实战私有数据微调ChatGLM3 实战私有数据微调ChatGLM3实战构造私有的微调数据集基于 ChatGPT 设计生成训练数据的 Prompt使用 LangChain GPT-3.5-Turbo 生成训练数据样例训练数据解析、数据增强和持久化存储自动化批量生成训练数据集流水线提示工程&#xff08;Prompt Engineer…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...