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

springboot mybatis-plus 对接 sqlserver 数据库 批处理的问题

问题:
在对接 sqlserver数据库的时候 主子表 保存的时候
子表批量保存 使用的 mybatis-plus提供的saveOrUpdateBatch 这个方法
但是 报错
报错内容为 :
com.microsoft.sqlserver.jdbc.SQLServerException: 必须执行该语句才能获得结果。

框架版本
sprin boot 2.0 +
mybatis-plus 3.3.1
mybatis-plus 代码生成器 mybatis-plus-generator: 3.3.2

SQL Server JDBC: mssql-jdbc 版本 :8.4.1.jre8

经过排查后
猜测 应该是 mssql-jdbc 和 mybatis-plus 不兼容把

mssql-jdbc 和 mybatis-plus 都调整的了版本 还是不行

最后我的结论 应该是 mybatis-plus在处理 sqlserver 批处理的时候
没有考虑这种情况
最后也没找到合适的解决方案

最后实现了两种解决方案 仅供参考
方案一:
在使用这个 批处理方法的时候 捕获异常

       // 对于sqlserver    批处理的问题// mybatis-plus 提供的 saveOrUpdateBatch saveBatch 这两个方法啊 经过测试 会报错//   如果非要用 mybatis-plus 的这个 saveOrUpdateBatch 方法// 必须要捕获异常  但是不知道会不会对事务有影响// 稳妥点的方案 批处理 写 xml文件 原生sql 执行 但是写起来麻烦//  xml 文件 放的位置 已经application.yml 配置文件中定义好了try {saveOrUpdateBatch(etMaintain.getEtMaintainsubList());}catch (UncategorizedSQLException e){e.printStackTrace();}

方案二 使用 xml 文件 生成sql 语句 来执行 批量处理

第一步 配置 xml 的存放位置

mybatis-plus:
mapper-locations: classpath:/mapper/*.xml

第二步编写 相对应的xml文件
举例说明
useGeneratedKeys=“true” 这个key 注意一下 网上有说 这个key 也会导致这个问题的出现

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yurui.pda.mapper.TransSubMapper"><insert id="saveTransSubs" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="sid">INSERT INTO Pr_TransSub ( SPMCNO, SPMCRoutID, SItemName, SProcedureID, SEmplID_Product, SQtys_Plan, SDate)VALUES<foreach collection="transSubs" item="transSub" separator=",">(#{transSub.spmcno}, #{transSub.spmCRoutID}, #{transSub.sitemName}, #{transSub.sprocedureID},#{transSub.semplidProduct}, #{transSub.sqtysPlan}, #{transSub.sdate})</foreach></insert>
</mapper>

相关文章:

springboot mybatis-plus 对接 sqlserver 数据库 批处理的问题

问题&#xff1a; 在对接 sqlserver数据库的时候 主子表 保存的时候 子表批量保存 使用的 mybatis-plus提供的saveOrUpdateBatch 这个方法 但是 报错 报错内容为 &#xff1a; com.microsoft.sqlserver.jdbc.SQLServerException: 必须执行该语句才能获得结果。 框架版本 sprin…...

Acwing---843. n-皇后问题——DFS

n-皇后问题1.题目2.基本思想3.代码实现1.题目 n−皇后问题是指将 n 个皇后放在 nn 的国际象棋棋盘上&#xff0c;使得皇后不能相互攻击到&#xff0c;即任意两个皇后都不能处于同一行、同一列或同一斜线上。 现在给定整数 n&#xff0c;请你输出所有的满足条件的棋子摆法。 …...

Android事件分发机制

文章目录Android View事件分发机制&#xff1a;事件分发中的核心方法onTouchListener和onClickListener的优先级事件分发DOWN,MOVE,UP 事件分发CANCEL代码实践requestdisallowIntereptTouchEvent作用Android View事件分发机制&#xff1a; 事件分发中的核心方法 Android中事件…...

python版协同过滤算法图书管理系统

基于协同过滤算法的图书管理系统 一、简介&#xff08;v信&#xff1a;1257309054&#xff09; ​ 本系统基于推荐算法给用户实现精准推荐图书。 ​ 根据用户对物品或者信息的偏好&#xff0c;发现物品或者内容本身的相关性&#xff0c;或者是发现用户的相关性&#xff0c;然…...

Redis基础入门

文章目录前言一、redis是什么&#xff1f;二、安装步骤1.下载安装包2.安装三、Redis的数据类型redis是一种高级的key-value的存储系统&#xff0c;其中的key是字符串类型&#xff0c;尽可能满足如下几点&#xff1a;字符串(String)列表(List)集合(Set&#xff0c;不允许出现重复…...

【微服务】Feign实现远程调用和负载均衡

目录 1.什么是Feign 2 订单微服务集成Feign 2.1.引入依赖 2.2添加注解 2.3编写Feign的客户端 2.4修改OrderServiceImpl.java的远程调用方法 2.5重启订单服务&#xff0c;并验证 总结 1.什么是Feign Feign是Spring Cloud提供的⼀个声明式的伪Http客户端&#xff0c; 它…...

Windows使用QEMU搭建arm64 ubuntu 环境

1. 下载 QEMU&#xff1a; https://qemu.weilnetz.de/w64/ QEMU UEFI固件文件&#xff1a; https://releases.linaro.org/components/kernel/uefi-linaro/latest/release/qemu64/QEMU_EFI.fd arm64 Ubuntu镜像&#xff1a; http://cdimage.ubuntu.com/releases/20.04.3/rel…...

NodeJS安装

一、简介Node.js是一个让JavaScript运行在服务端的开发平台&#xff0c;Node.js不是一种独立的语言&#xff0c;简单的说 Node.js 就是运行在服务端的 JavaScript。npm其实是Node.js的包管理工具&#xff08;package manager&#xff09;&#xff0c;类似与 maven。二、安装步骤…...

Gin 优雅打印请求与回包内容

文章目录1.Gin 的 Middleware2.使用 Middleware 打印请求与回包内容3.多次读取请求 Body 的问题4.多次读取响应 Body 的问题5.小结参考文献在开发 Web 应用程序时&#xff0c;难免不会遇到功能或性能等问题。为了快速定位问题&#xff0c;需要打印请求和响应的内容。本文将介绍…...

关于k8s中ETCD集群备份灾难恢复的一些笔记

写在前面 集群电源不稳定&#xff0c;或者节点动不动就 宕机,一定要做好备份&#xff0c;ETCD 的快照文件很容易受影响损坏。重置了很多次集群&#xff0c;才认识到备份的重要博文内容涉及 etcd 运维基础知识了解静态 Pod 方式 etcd 集群灾备与恢复 Demo定时备份的任务编写二进…...

【设计模式之美 设计原则与思想:设计原则】19 | 理论五:控制反转、依赖反转、依赖注入,这三者有何区别和联系?

关于 SOLID 原则&#xff0c;我们已经学过单一职责、开闭、里式替换、接口隔离这四个原则。今天&#xff0c;我们再来学习最后一个原则&#xff1a;依赖反转原则。在前面几节课中&#xff0c;我们讲到&#xff0c;单一职责原则和开闭原则的原理比较简单&#xff0c;但是&#x…...

2023年全国最新高校辅导员精选真题及答案13

百分百题库提供高校辅导员考试试题、辅导员考试预测题、高校辅导员考试真题、辅导员证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 一、单选题 131.下列不属于我国国土空间具有的特点的是&#xff08;&#xff09; A.水资…...

【XXL-JOB】XXL-JOB定时处理视频转码

【XXL-JOB】XXL-JOB定时处理视频转码 文章目录【XXL-JOB】XXL-JOB定时处理视频转码1. 准备工作1.1 高级配置1.2 分片广播2. 需求分析2.1 作业分片方案2.2 保证任务不重复执行2.2.1 保证幂等性3. 视频处理业务流程3.1 添加待处理任务3.2 查询待处理任务3.3 更新任务状态3.4 工具…...

optuna用于pytorch的轻量级调参场景和grid search的自定义设计

文章目录0. 背景&#xff1a;why optuna0.1 插播一个简单的grid search0.2 参考1. Optuna1.1 a basic demo与部分参数释义1.2 random的问题1.3 Objective方法类2. Optuna与grid search4. optuna的剪枝prune5. optuna与可视化6. 未完待续0. 背景&#xff1a;why optuna 小模型参…...

语法篇--汇编语言先导浅尝

一、相关概念 1.机器语言 机器语言&#xff08;Machine Language&#xff09;是一种计算机程序语言&#xff0c;由二进制代码&#xff08;0和1&#xff09;组成&#xff0c;可被计算机直接执行。机器语言是计算机硬件能够理解和执行的唯一语言。 机器语言通常由一系列的指令组…...

【ID:17】【20分】A. DS顺序表--类实现

时间限制1秒内存限制128兆字节题目描述用C语言和类实现顺序表属性包括&#xff1a;数组、实际长度、最大长度&#xff08;设定为1000&#xff09;操作包括&#xff1a;创建、插入、删除、查找类定义参考输入第1行先输入n表示有n个数据&#xff0c;即n是实际长度;接着输入n个数据…...

【java web篇】Tomcat的基本使用

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域优质创作者。&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4d…...

MySQL实战解析底层---行锁功过:怎么减少行锁对性能的影响

目录 前言 从两阶段锁说起 死锁和死锁检测 前言 MySQL 的行锁是在引擎层由各个引擎自己实现的但并不是所有的引擎都支持行锁&#xff0c;比如MyISAM 引擎就不支持行锁不支持行锁意味着并发控制只能使用表锁&#xff0c;对于这种引擎的表&#xff0c;同一张表上任何时刻只能有…...

初识STM32单片机

目录 初识STM32单片机 什么是单片机&#xff1f; STM系列单片机命名规则 STM32F103C8T6单片机简介 标准库与HAL库区别 通用输入输出端口GPIO 什么是GPIO&#xff1f; 定义 命名规则 内部框架图 推挽输出与开漏输出 如何点亮一颗LED灯 编程实现点灯 按键点亮LED灯…...

数据结构与算法系列之单链表

&#x1f497; &#x1f497; 博客:小怡同学 &#x1f497; &#x1f497; 个人简介:编程小萌新 &#x1f497; &#x1f497; 如果博客对大家有用的话&#xff0c;请点赞关注再收藏 &#x1f31e; 这里写目录标题test.hSList.h注意事项一级指针与二级指针的使用assert的使用空…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像&#xff08;比如分辨率3000*3000的图像&#xff09;的办法&#xff0c;尤其是想把内存中的裸数据&#xff08;只有图像的数据&#xff0c;不包…...

【java面试】微服务篇

【java面试】微服务篇 一、总体框架二、Springcloud&#xff08;一&#xff09;Springcloud五大组件&#xff08;二&#xff09;服务注册和发现1、Eureka2、Nacos &#xff08;三&#xff09;负载均衡1、Ribbon负载均衡流程2、Ribbon负载均衡策略3、自定义负载均衡策略4、总结 …...