mybatis批量更新时sql语句没问题但报bad SQL grammar []错误

解决bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException 确保底层SQL与上层调用的代码都没有逻辑问题,所以“bad SQL grammar []”应该是由配置文件导致的,检查项目的。这种配置的使用对于一些特殊的SQL语句执行场景非常有帮助,但需要谨慎使用,确保SQL语句的合法性和安全性。在使用Spring Boot连接MySQL数据库时,有时候会遇到“Bad SQL Grammar”错误,这种错误通常在执行SQL语句时发生。本文针对的是对于执行多条SQL语句的情况。MySQL连接配置中有一些常用的参数,这些参数可以在数据库连接字符串(URL)中进行配置。 阅读详情

网上对于mybaitis批量更新的实现提供了大概两种方法。一种是使用sql的case语法。另一种是每次只更新一条但是用foreach语句拼装起来。我使用的就是第二种。mybatis的语句大致如下:

<update id="setWeiboEmotionByList" parameterType="java.util.List">
        <foreach collection="list" item="item" open="" close="" separator=";">
            UPDATE weibo_content
            SET
                EMOTION = #{item.emotion}
            WHERE
                WEIBO_ID = #{item.weibo_id}
        </foreach>
    </update>

一次更新多条sql语句,每一条以分号隔开。以上mybatis翻译成sql大致如下:

UPDATE weibo_content
SET
   EMOTION = 1
WHERE
   WEIBO_ID = 1;
UPDATE weibo_content
SET
   EMOTION = 0
WHERE
   WEIBO_ID = 2;   

但是在进行测试的时候,每次更新数据库时就会出现类似的如下错误:

Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE weibo_content
            SET
                EMOTION = 0.0
            W' at line 7
; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE weibo_content

但是我将sql语句单独放在navicat中是可以成功执行的,后来发现是连接数据库的时候少了allowMultiQueries=true 这条语句。这条语句允许一次提交多条sql语句。特别是分号;
完整的数据库连接url大致如下:
jdbc:mysql://localhost:3306/zkw_web?useUnicode=true&characterEncoding=utf8 &allowMultiQueries=true

mybatis批量插入异常“ bad SQL grammar [],MySQLSyntaxErrorException”的解决 一、问题表现: 批量插入时报错,错误如下: ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''2020-06-02 00:00:00', 阅读详情

相关推荐

解决ingframework.jdbc.BadSqlGrammarException: SqlMapClient operation; bad SQL grammar []; nested

摘要:文章分析了BadSqlGrammarException错误,指出核心问题是SQL语句中引用的colorMark列在数据库表中不存在或拼写错误。作者王文峰(优快云博客之星)提供了详细排查步骤:1)检查SQL语句的SELECT子句;2)核对数据库表结构;3)验证ResultMap配置。解决方案包括修正列名拼写、调整ResultMap映射或修改表结构,并强调避免使用SELECT *的最佳实践。本文来自公众号"JAVA开发王大师",转载需注明作者。(149字)

王大师企业官方博客 1318

Sql语句正确却报BadSqlGrammarException(MySQL数据库)

MySQL数据库sql语句正常,却报BadSqlGrammarException(sql语法错误异常) Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException

Odinpeng的博客 1万+

ISP-全局色调映射(GTM)算法简单实现

色调映射算法,色彩空间转换LAB

notgoodenouf的博客 2239

解决bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符

1. 报错: ### Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符 ; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符 2.出错 原因: 1) sql在数据库执行都是OK的。 真...

愿我如星君如月 ... 夜夜流光相皎洁 ... 18万+

AMSR-2数据下载实战:从JAXA到LPRM的算法选择与效率优化

本文详细介绍了AMSR-2数据的下载实战,重点对比了JAXA与LPRM算法的差异及适用场景,并提供了高效下载方案和网络优化策略。通过实际案例和代码示例,帮助用户快速获取和处理AMSR-2数据,提升研究效率。

rl6adventurer的博客 691

YOLOv8使用设备摄像头实时监测

YOLOv8使用设备摄像头实时监测

Joining667的博客 4188

BadSqlGrammarException产生原因及解决方案

通常是由于 SQL 语句的语法错误或拼写错误引起的。解决这个问题的关键在于仔细检查 SQL 语句、确保参数正确绑定,并使用日志调试工具定位问题。

境里婆娑 3445

TI DSP从COFF切换到EABI输出格式的5个关键修改点(TMS320F280025实测)

本文基于TMS320F280025实测,详细解析了TI DSP从COFF切换到EABI输出格式的5个关键修改点。核心差异在于EABI遵循ELF标准,涉及链接器优化、RAM数据共享、工具链升级、double数据类型位宽变化及链接器命令文件重构。迁移时需使用.retain指令防止关键数据被优化,利用NOINIT段保护共享RAM,并更新hex2000等工具,以确保BootLoader与应用程序稳定运行。

weixin_29189381的博客 265

04-mybatis 批量更新 foreach bad SQL grammar []

mybatis批量更新时,报错foreach bad SQL grammar [] <update id="xxxx" parameterType="java.util.List"> <foreach collection="list" item="user" separator=";"> update t_xxx_user set is_default = #{user.isDefault} where id = #{

SO 813

《Swin-Unet: 类Unet的纯Transformer架构用于医学图像分割》学习笔记

近年来,卷积神经网络(CNN)在医学图像分析领域取得了重要进展。尤其是基于U形架构和跳跃连接的深度神经网络广泛应用于各种医学图像任务。然而,尽管CNN表现优异,但由于卷积操作的局部性,其难以很好地学习全局和长距离语义信息的交互。在本文中,我们提出了Swin-Unet,一种用于医学图像分割的类Unet纯Transformer模型。被切分为Token的图像块输入到基于Transformer的U形编码器-解码器架构中,通过跳跃连接实现局部和全局语义特征的学习。

学无止境。 5547

【Burp入门第三十七篇】AutoRepeater插件安装使用教程+越权实战案例

AutoRepeater 通过接收满足特定条件的请求,按照预设的基础替换规则对请求进行处理。在接收到匹配请求后,它首先应用基础替换,然后针对每个定义的替换创建请求副本并应用该替换操作,从而实现对不同参数的修改和请求的重复发送,以此来全面检测 Web 应用的授权情况。1、自动化请求重复:能自动复制、修改并重发 HTTP 请求,避免了手动重复操作的繁琐,大大提高了 Web 应用授权测试的效率。2、灵活参数替换:可灵活改变邮箱地址、账号身份、角色、URL 和 CSRF 令牌等关键参数。

等风来 2034

mysql批量更新 bad SQL grammar [] 错误

出现的问题 ### The error occurred while setting parameters ### SQL: update crawler_ip_all SET auto_table = ?, put_reason = ?, put_user = ?, put_way = ?, cre

qq_20667511的博客 3143

人工智能在文学领域的应用:创作无限可能的智能作家

人工智能在文学领域的应用:创作无限可能的智能作家 作者:禅与计算机程序设计艺术 1. 背景介绍 人工智能技术近年来飞速发展,在各个领域都有广泛应用。文学创作作为人类最高级的智力活动之一,也逐渐受到人工智能技术的影响和改变。随着自然语言处理、生成式模型等人工智能

AI天才研究院 1110

mysql 更新 SQL 语句 无错误 批量 报错bad SQL grammar []错误

mapper.xml    &lt;update id="removeFalse"&gt;        &lt;foreach collection="msid" separator=";" item="item"&gt;            UPDATE            on_meeting_auction SET            remove_false = 0        

刘成江的博客 8037

16. SAP Fiori Elements 应用里图片字段(Image)的显示原理介绍

很多朋友向我反映,学习了 一段时间的 SAP Fiori Elements 开发,但是感觉整套体系对于自己来说还是个黑盒子,很多技术点,看了 SAP 官方帮助文档后,觉得自己懂了,但是一旦需要自己动手做一些东西出来时,又觉得一片茫然。 其实笔者自己也经历过这个过程。究其原因,还是大家对 Fiori Elements 一些技术细节没有理解,对 SAP 官方的知识点仅仅停留在记忆,甚至是死记硬背上面。 不过没有关系,本教程笔者会刻意设置一些练习,让大家动手,在实战中逐渐熟悉 Fiori Elements 这

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 754

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Mybatis新增用if标签出现bad SQL grammar问题解决

新增语句用标签判断时出现 Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds …bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException 而这个用法在之前的项目中又能实用,之前用的数据库是5.7

weixin_42910007的博客 1072

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: python实现BP神经网络(详细参数)
下一篇: shiro与spring整合中shiroFilter配置参数loginUrl及unauthorizedUrl含义小记
TYOUKAI_
博客等级 码龄9年 33粉丝 25原创
评论 12
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值