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 数据库 批处理的问题
问题: 在对接 sqlserver数据库的时候 主子表 保存的时候 子表批量保存 使用的 mybatis-plus提供的saveOrUpdateBatch 这个方法 但是 报错 报错内容为 : com.microsoft.sqlserver.jdbc.SQLServerException: 必须执行该语句才能获得结果。 框架版本 sprin…...
Acwing---843. n-皇后问题——DFS
n-皇后问题1.题目2.基本思想3.代码实现1.题目 n−皇后问题是指将 n 个皇后放在 nn 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。 现在给定整数 n,请你输出所有的满足条件的棋子摆法。 …...
Android事件分发机制
文章目录Android View事件分发机制:事件分发中的核心方法onTouchListener和onClickListener的优先级事件分发DOWN,MOVE,UP 事件分发CANCEL代码实践requestdisallowIntereptTouchEvent作用Android View事件分发机制: 事件分发中的核心方法 Android中事件…...
python版协同过滤算法图书管理系统
基于协同过滤算法的图书管理系统 一、简介(v信:1257309054) 本系统基于推荐算法给用户实现精准推荐图书。 根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,然…...
Redis基础入门
文章目录前言一、redis是什么?二、安装步骤1.下载安装包2.安装三、Redis的数据类型redis是一种高级的key-value的存储系统,其中的key是字符串类型,尽可能满足如下几点:字符串(String)列表(List)集合(Set,不允许出现重复…...
【微服务】Feign实现远程调用和负载均衡
目录 1.什么是Feign 2 订单微服务集成Feign 2.1.引入依赖 2.2添加注解 2.3编写Feign的客户端 2.4修改OrderServiceImpl.java的远程调用方法 2.5重启订单服务,并验证 总结 1.什么是Feign Feign是Spring Cloud提供的⼀个声明式的伪Http客户端, 它…...
Windows使用QEMU搭建arm64 ubuntu 环境
1. 下载 QEMU: https://qemu.weilnetz.de/w64/ QEMU UEFI固件文件: https://releases.linaro.org/components/kernel/uefi-linaro/latest/release/qemu64/QEMU_EFI.fd arm64 Ubuntu镜像: http://cdimage.ubuntu.com/releases/20.04.3/rel…...
NodeJS安装
一、简介Node.js是一个让JavaScript运行在服务端的开发平台,Node.js不是一种独立的语言,简单的说 Node.js 就是运行在服务端的 JavaScript。npm其实是Node.js的包管理工具(package manager),类似与 maven。二、安装步骤…...
Gin 优雅打印请求与回包内容
文章目录1.Gin 的 Middleware2.使用 Middleware 打印请求与回包内容3.多次读取请求 Body 的问题4.多次读取响应 Body 的问题5.小结参考文献在开发 Web 应用程序时,难免不会遇到功能或性能等问题。为了快速定位问题,需要打印请求和响应的内容。本文将介绍…...
关于k8s中ETCD集群备份灾难恢复的一些笔记
写在前面 集群电源不稳定,或者节点动不动就 宕机,一定要做好备份,ETCD 的快照文件很容易受影响损坏。重置了很多次集群,才认识到备份的重要博文内容涉及 etcd 运维基础知识了解静态 Pod 方式 etcd 集群灾备与恢复 Demo定时备份的任务编写二进…...
【设计模式之美 设计原则与思想:设计原则】19 | 理论五:控制反转、依赖反转、依赖注入,这三者有何区别和联系?
关于 SOLID 原则,我们已经学过单一职责、开闭、里式替换、接口隔离这四个原则。今天,我们再来学习最后一个原则:依赖反转原则。在前面几节课中,我们讲到,单一职责原则和开闭原则的原理比较简单,但是&#x…...
2023年全国最新高校辅导员精选真题及答案13
百分百题库提供高校辅导员考试试题、辅导员考试预测题、高校辅导员考试真题、辅导员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 一、单选题 131.下列不属于我国国土空间具有的特点的是() 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. 背景: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. 背景:why optuna 小模型参…...
语法篇--汇编语言先导浅尝
一、相关概念 1.机器语言 机器语言(Machine Language)是一种计算机程序语言,由二进制代码(0和1)组成,可被计算机直接执行。机器语言是计算机硬件能够理解和执行的唯一语言。 机器语言通常由一系列的指令组…...
【ID:17】【20分】A. DS顺序表--类实现
时间限制1秒内存限制128兆字节题目描述用C语言和类实现顺序表属性包括:数组、实际长度、最大长度(设定为1000)操作包括:创建、插入、删除、查找类定义参考输入第1行先输入n表示有n个数据,即n是实际长度;接着输入n个数据…...
【java web篇】Tomcat的基本使用
📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言Ὅ…...
MySQL实战解析底层---行锁功过:怎么减少行锁对性能的影响
目录 前言 从两阶段锁说起 死锁和死锁检测 前言 MySQL 的行锁是在引擎层由各个引擎自己实现的但并不是所有的引擎都支持行锁,比如MyISAM 引擎就不支持行锁不支持行锁意味着并发控制只能使用表锁,对于这种引擎的表,同一张表上任何时刻只能有…...
初识STM32单片机
目录 初识STM32单片机 什么是单片机? STM系列单片机命名规则 STM32F103C8T6单片机简介 标准库与HAL库区别 通用输入输出端口GPIO 什么是GPIO? 定义 命名规则 内部框架图 推挽输出与开漏输出 如何点亮一颗LED灯 编程实现点灯 按键点亮LED灯…...
数据结构与算法系列之单链表
💗 💗 博客:小怡同学 💗 💗 个人简介:编程小萌新 💗 💗 如果博客对大家有用的话,请点赞关注再收藏 🌞 这里写目录标题test.hSList.h注意事项一级指针与二级指针的使用assert的使用空…...
EasyAnimateV5-7b-zh-InP一键部署教程:基于Linux系统的快速安装指南
EasyAnimateV5-7b-zh-InP一键部署教程:基于Linux系统的快速安装指南 1. 引言 想快速在Linux系统上部署一个强大的视频生成模型吗?EasyAnimateV5-7b-zh-InP是一个22GB的图生视频模型,支持多分辨率视频生成,还能用中英文双语进行预…...
Stable Diffusion v1.5 Archive 镜像实测:5步完成部署,快速体验文生图
Stable Diffusion v1.5 Archive 镜像实测:5步完成部署,快速体验文生图 1. 开篇:为什么选择SD1.5 Archive版本 Stable Diffusion作为当前最热门的开源AI绘画模型,已经迭代了多个版本。其中v1.5作为经典版本,在图像质量…...
万象视界灵坛惊艳案例:浅蓝格点背景中生成的‘同步率’进度条动态响应过程
万象视界灵坛惊艳案例:浅蓝格点背景中生成的"同步率"进度条动态响应过程 1. 效果展示概述 在视觉识别领域,传统界面往往显得单调乏味。万象视界灵坛通过创新的像素风格设计,将复杂的语义对齐过程转化为一场视觉盛宴。本次展示的核…...
告别混乱文件管理:用NERDTree打造VIM项目导航系统
告别混乱文件管理:用NERDTree打造VIM项目导航系统 每次打开一个包含数百个文件的复杂项目时,你是否会感到一阵眩晕?当你在多个目录间反复切换查找某个配置文件时,是否觉得时间在指尖悄然流逝?对于资深VIM用户而言&…...
告别复杂配置!Wan2.2-I2V-A14B私有镜像开箱即用,小白也能做视频
告别复杂配置!Wan2.2-I2V-A14B私有镜像开箱即用,小白也能做视频 1. 为什么选择这个私有镜像? 如果你曾经尝试过部署AI视频生成模型,一定经历过这些痛苦:环境配置冲突、依赖版本不匹配、显存不足报错、模型权重下载缓…...
从CPU到内存:用74LS74芯片手把手教你搭建一个D边沿触发器(附波形图分析)
从面包板到示波器:用74LS74芯片实战D边沿触发器的完整指南 当你第一次在数字电路课本上看到"D边沿触发器"这个词时,是否感觉它像是一个抽象的黑盒子?教科书上的真值表和波形图虽然精确,但总缺少那么一点"触手可及&…...
基于模拟退火算法优化的最小二乘支持向量机(SA-LSSVM)数据分类预测及Matlab代码实现...
基于模拟退火算法优化最小二乘支持向量机(SA-LSSVM)的数据分类预测 SA-LSSVM数据分类 matlab代码,采用交叉验证抑制过拟合问题注:采用交叉验证在一定程度上抑制了过拟合问题。 注:要求 Matlab 2018B 版本及以上最近在搞分类预测的项目&#x…...
用Python+Matplotlib动手验证:标准DH和改进DH建模同一机械臂,结果真的相同吗?
PythonMatplotlib实战:标准DH与改进DH建模机械臂的等价性验证 机械臂运动学建模是机器人学中的基础课题,而Denavit-Hartenberg(DH)参数法则是其中最经典的建模方法之一。标准DH(sDH)与改进DH(mD…...
300 元内降噪耳机横评:倍思 M2s / 绿联 T3 / 漫步者 X5 Pro 实测对比(续航・降噪・延迟全数据)
300 元内降噪耳机横评:倍思 M2s / 绿联 T3 / 漫步者 X5 Pro 实测数据对比(附续航 / 降噪 / 延迟测试结果) 摘要 本文针对学生党、通勤族高频使用的 300 元内主动降噪耳机,选取倍思 M2s、绿联 HiTune T3、漫步者 X5 Pro 三款热门机…...
Wave-U-Net:革新音频分离技术的端到端深度学习解决方案
Wave-U-Net:革新音频分离技术的端到端深度学习解决方案 【免费下载链接】Wave-U-Net Implementation of the Wave-U-Net for audio source separation 项目地址: https://gitcode.com/gh_mirrors/wa/Wave-U-Net 在数字音频处理领域,从混合音频中精…...
