解决mybatis批量更新出现SQL报错问题

 更新时间:2022年02月19日 10:44:01   作者:拒绝熬夜啊  
这篇文章主要介绍了mybatis批量更新出现SQL报错,解决办法也很简单只需要在application.properties配置文中的数据源url后面添加一个参数,需要的朋友可以参考下

一、问题重现

1.配置文件

spring:
  #DataSource数据源
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/mybatis_test?useSSL=false&amp
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver

#MyBatis配置
mybatis:
  type-aliases-package: com.hl.mybatis.pojo #别名定义
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #指定 MyBatis 所用日志的具体实现,未指定时将自动查找
    map-underscore-to-camel-case: true #开启自动驼峰命名规则(camel case)映射
    lazy-loading-enabled: true #开启延时加载开关
    aggressive-lazy-loading: false #将积极加载改为消极加载(即按需加载),默认值就是false
    lazy-load-trigger-methods: "" #阻挡不相干的操作触发,实现懒加载
    cache-enabled: true #打开全局缓存开关(二级环境),默认值就是true

2.sql

@Update({"<script>" +
            "<foreach item='item' collection='list' index='index' open='' close='' separator=';'>" +
            " UPDATE tb_user " +
            "<set>" +
            "<if test='item.userAccount != null'>user_account = #{item.userAccount},</if>" +
            "<if test='item.userPassword != null'>user_password=#{item.userPassword}</if>" +
            "</set>" +
            " WHERE user_id = #{item.userId} " +
            "</foreach>" +
            "</script>"})
    int updateBatch(@Param("list")List<UserInfo> userInfoList);

3.测试

查看控制台错误

在这里插入图片描述

发现这里告诉我有一个语法错误,然后发现user_id,有一个符号。>

这里经过测试更新一条是成功的

在这里插入图片描述

二、问题分析

Mybatis映射文件中的sql语句默认是不支持以" ; " 结尾的,也就是不支持多条sql语句的执行

在这里插入图片描述

但是在SQL编辑器中执行多条sql语句的时候是可以以分号结尾的,如:

在这里插入图片描述

三、解决方法

在application.properties配置文中的数据源url后面添加一个参数

&allowMultiQueries=true【允许sql语句中有多个insert或者update语句 == 支持sql批量操作】

原来的配置文件:

url: jdbc:mysql://127.0.0.1:3306/mybatis_test?useSSL=false&amp

现在的配置文件

url: jdbc:mysql://127.0.0.1:3306/mybatis_test?useSSL=false&amp&&allowMultiQueries=true

再次测试

在这里插入图片描述

到此这篇关于mybatis批量更新出现SQL报错的文章就介绍到这了,更多相关mybatis批量更新出现SQL报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • IDEA集成Docker实现快捷部署的操作步骤

    IDEA集成Docker实现快捷部署的操作步骤

    这篇文章主要介绍了IDEA集成Docker实现快捷部署的操作步骤,通过灵活利用这一功能,开发人员可以更快速地开发、调试和部署应用程序,从而提高开发工作的效率和质量,需要的朋友可以参考下
    2024-06-06
  • Spring之WEB模块配置详解

    Spring之WEB模块配置详解

    这篇文章主要介绍了Spring之WEB模块配置详解,简单介绍了其继承方式,代理方式,以及相关详细配置代码,具有一定借鉴价值,需要的朋友可以了解下。
    2017-12-12
  • resultMap标签中里的collection标签详解

    resultMap标签中里的collection标签详解

    这篇文章主要介绍了resultMap标签中里的collection标签,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • mybatis 多表关联mapper文件写法操作

    mybatis 多表关联mapper文件写法操作

    这篇文章主要介绍了mybatis 多表关联mapper文件写法操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • java实现客户端向服务器发送文件

    java实现客户端向服务器发送文件

    这篇文章主要为大家详细介绍了java实现客户端向服务器发送文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Java 异常详解

    Java 异常详解

    本文主要介绍了异常与错误的区别,异常的体现分类,异常的处理机制,如何自定义异常等,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • Springboot 前后端分离项目使用 POI 生成并导出 Excel的操作方法

    Springboot 前后端分离项目使用 POI 生成并导出 Excel的操作方法

    在做一个 SpringBoot 前后端分离项目的时候,需要将数据存到 Excel中,用户可以下载 Excel,具体实现是采用 Apache 强大的 POI,本文给大家介绍Springboot 前后端分离项目使用 POI 生成并导出 Excel相关知识,感兴趣的朋友一起看看吧
    2023-09-09
  • Java Springboot之Spring家族的技术体系

    Java Springboot之Spring家族的技术体系

    今天带大家来学习Spring家族的技术体系,文中有非常详细的图文介绍及代码示例,对正在学习java的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • C#中NAudio音频库的安装与使用教程详解

    C#中NAudio音频库的安装与使用教程详解

    NAudio为.NET平台下的开源库,采用ML-PL协议,它支持许多音频操作,可实现多种API播放与录制、多种不同音频格式等功能,下面就跟随小编一起学习一下NAudio的安装与使用吧
    2023-11-11
  • Spring的Aware接口实现及执行顺序详解

    Spring的Aware接口实现及执行顺序详解

    这篇文章主要为大家介绍了Spring的Aware接口实现及执行顺序详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12

最新评论