MyBatis批量更新(update foreach)報(bào)錯(cuò)問(wèn)題
MyBatis批量更新報(bào)錯(cuò)解決
在使用mybatis執(zhí)行批量更新(update foreach)數(shù)據(jù)的時(shí)候
報(bào)錯(cuò)如下:
org.springframework.jdbc.BadSqlGrammarException:
### Error updating database. 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 '......
### The error may involve ....
### The error occurred while setting parameters ### SQL:
剛開(kāi)始一直以為是自己SQL寫錯(cuò)了,但是檢查N遍,發(fā)現(xiàn)也沒(méi)問(wèn)題,而且到Navicat中執(zhí)行也沒(méi)說(shuō)SQL報(bào)錯(cuò),
批量更新SQL如下:
<!--批量更新報(bào)表 --> <update id="updateBatchUser" parameterType="java.util.List"> <foreach collection="userList" item="item" index="index" separator=";"> update sys_user <set> <if test="item.userName != null and item.userName!= ''">user_name = #{item.userName}, </if> <if test="item.userNo != null">user_no = #{item.userNo }, </if> ... updated_time = now() </set> where id = #{item.id} </foreach> </update>
解決方案
MySQL的批量更新是要我們主動(dòng)去設(shè)置的
使用mybatis進(jìn)行批量插入與更新時(shí)
必須在配置連接url時(shí)加上 &allowMultiQueries=true 即可
jdbc:mysql://xx:3306/test?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&rewriteBatchedStatements=true&allowMultiQueries=true
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Nacos動(dòng)態(tài)配置管理機(jī)制方式
這篇文章主要介紹了Nacos動(dòng)態(tài)配置管理機(jī)制方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07解析springboot包裝controller返回值問(wèn)題
這篇文章主要介紹了springboot包裝controller返回值問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12Java基礎(chǔ)教程之對(duì)象的方法與數(shù)據(jù)成員
這篇文章主要介紹了Java基礎(chǔ)教程之對(duì)象的方法與數(shù)據(jù)成員,本文講解對(duì)象的方法與數(shù)據(jù)成員相關(guān)知識(shí),因?yàn)閖ava是面向?qū)ο笳Z(yǔ)言,本文的知識(shí)都是經(jīng)常要用到的,需要的朋友可以參考下2014-08-08Spring中使用事務(wù)嵌套時(shí)需要警惕的問(wèn)題分享
最近項(xiàng)目上有一個(gè)使用事務(wù)相對(duì)復(fù)雜的業(yè)務(wù)場(chǎng)景報(bào)錯(cuò)了。在絕大多數(shù)情況下,都是風(fēng)平浪靜,沒(méi)有問(wèn)題。其實(shí)內(nèi)在暗流涌動(dòng),在有些異常情況下就會(huì)報(bào)錯(cuò),這種偶然性的問(wèn)題很有可能就會(huì)在暴露到生產(chǎn)上造成事故,那究竟是怎么回事呢?本文就來(lái)簡(jiǎn)單講講2023-04-04Spring 與 JDK 線程池的簡(jiǎn)單使用示例詳解
這篇文章主要介紹了Spring 與 JDK 線程池的簡(jiǎn)單使用,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09Java?C++題解leetcode字符串輪轉(zhuǎn)KMP算法詳解
這篇文章主要為大家介紹了Java?C++題解leetcode字符串輪轉(zhuǎn)KMP算法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09