首页 > 其他分享 >mybatis批量更新出错记录

mybatis批量更新出错记录

时间:2023-07-20 09:25:36浏览次数:27  
标签:code 批量 更新 device 出错 mybatis true

问题:

首先已经检查过代码并确认sql语法都对

<update id="batchUpdate">
<foreach collection="upList" item="d" separator=";">
update broadcast_status
<set>
<if test="d.deviceName != '' and d.deviceName != null">
device_name = #{d.deviceName},
</if>
<if test="d.deviceClass != '' and d.deviceClass != null">
device_class = #{d.deviceClass},
</if>
<if test="d.onlineStatus != '' and d.onlineStatus != null">
online_status = #{d.onlineStatus},
</if>
<if test="d.faultState != '' and d.faultState != null">
fault_state = #{d.faultState},
</if>
<if test="d.ocupyState != '' and d.ocupyState != null">
ocupy_state = #{d.ocupyState},
</if>
<if test="d.temp != '' and d.temp != null">
temp = #{d.temp},
</if>
<if test="d.modifyTime != null">
modify_time = #{d.modifyTime},
</if>
</set>
where bureau_code = #{bureauCode} and station_code = #{stationCode} and device_id = #{d.deviceId}
</foreach>
</update>

但是更新时还会报sql语法错误,更新不了。

原因:

  mybatis默认不支持批量操作,需要在数据库连接配置文件的url中追加允许批量操作的属性:&allowMultiQueries=true

eg:

  url: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&allowMultiQueries=true

加上后就能正常批量插入了。


 

标签:code,批量,更新,device,出错,mybatis,true
From: https://www.cnblogs.com/sensenh/p/17567380.html

相关文章

  • mybatis中 #{keyword} , ${keyword} 什么区别
    ${keyword}和#{keyword}是MyBatis中用于参数替换的两种不同的占位符形式,它们有以下区别:${keyword}:这是一种简单的字符串替换占位符形式,它会将占位符${keyword}直接替换为传入的参数值。例如,在XML配置文件中使用${keyword},相当于在SQL语句中直接拼接参数的字符串表......
  • 数据库高效批量更新操作 MERGE INTO
    使用UPDATE批量更新大量的数据,会出现效率低下,有时候甚至卡死的情况,后面通过使用MERGEINTO代替UPDATE执行批量更新,会提升执行效率。原理:因为UPDATE关联子查询写法,是选到一条做一次子查询,这种写法得更新少,走好的索引才行,MERGE写法是执行完ON后一次性更新,效率会好点。......
  • bridge资产导入blender出错
    bridge资产导入blender错误显示bidgeCouldnotsenddataoverport28888解决办法1.在Quixelbridge里点击Edit找到ManagePlugins下载blender插件我的显示已经下载好了2.在Quixelbridge里点击Edit找到Settings找到插件保存路径3.在路径里找到E:\Documents\Megascans......
  • springboot整合mybatis
    项目结构: 1.添加依赖<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://mave......
  • mybatis的generator 代码生成器(自动生成DAO,PO,XML)
    1.引入插件<!--mybatis代码自动生成插件--><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><......
  • AliOSS python 批量上传文件
    AliOSSPython批量上传文件简介AliOSS是阿里云提供的一种对象存储服务,可以用于存储和管理大量的非结构化数据。在Python中,我们可以使用AliOSSSDK来快速地上传多个文件到AliOSS。本文将介绍如何使用AliOSSPythonSDK来批量上传文件到AliOSS,并提供代码示例来说明具体的操作步骤......
  • 解决seata与mybatis的saveBatch事物管理器冲突问题
    报错:org.springframework.beans.factory.NoSuchBeanDefinitionException:Noqualifyingbeanoftype'org.springframework.transaction.TransactionManager'  重写方法即可service层/***批量保存**@parambaseChapterList*@return......
  • 升级EF7连接SQL server出错SqlException: A connection was successfully established
    今天把项目里的Microsoft.EntityFrameworkCore.SqlServer和Microsoft.EntityFrameworkCore.Tools从6.0.6升级到了最新的7.0.9。一运行程序出错了。Win32Exception:证书链是由不受信任的颁发机构颁发的。UnknownlocationSqlException:Aconnectionwassuccessfullyestab......
  • ArcMap+ArcPy 图层样式批量设置
    originLayerName=""mxd=arcpy.mapping.MapDocument(r"CURRENT")originLayer=arcpy.mapping.ListLayers(mxd,originLayerName)[0]layers=arcpy.mapping.ListLayers(mxd)forlyrinlayers:iflyr.name==originLayer.name:co......
  • 二、集成MyBatis
    1.创建新模块 添加依赖1.1.pom.xml文件<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="htt......