解決mybatis批量更新出現(xiàn)SQL報(bào)錯(cuò)問(wèn)題
一、問(wèn)題重現(xiàn)
1.配置文件
spring:
#DataSource數(shù)據(jù)源
datasource:
url: jdbc:mysql://127.0.0.1:3306/mybatis_test?useSSL=false&
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 所用日志的具體實(shí)現(xiàn),未指定時(shí)將自動(dòng)查找
map-underscore-to-camel-case: true #開(kāi)啟自動(dòng)駝峰命名規(guī)則(camel case)映射
lazy-loading-enabled: true #開(kāi)啟延時(shí)加載開(kāi)關(guān)
aggressive-lazy-loading: false #將積極加載改為消極加載(即按需加載),默認(rèn)值就是false
lazy-load-trigger-methods: "" #阻擋不相干的操作觸發(fā),實(shí)現(xiàn)懶加載
cache-enabled: true #打開(kāi)全局緩存開(kāi)關(guān)(二級(jí)環(huán)境),默認(rèn)值就是true2.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.測(cè)試
查看控制臺(tái)錯(cuò)誤

發(fā)現(xiàn)這里告訴我有一個(gè)語(yǔ)法錯(cuò)誤,然后發(fā)現(xiàn)user_id,有一個(gè)符號(hào)。>
這里經(jīng)過(guò)測(cè)試更新一條是成功的

二、問(wèn)題分析
Mybatis映射文件中的sql語(yǔ)句默認(rèn)是不支持以" ; " 結(jié)尾的,也就是不支持多條sql語(yǔ)句的執(zhí)行

但是在SQL編輯器中執(zhí)行多條sql語(yǔ)句的時(shí)候是可以以分號(hào)結(jié)尾的,如:

三、解決方法
在application.properties配置文中的數(shù)據(jù)源url后面添加一個(gè)參數(shù)
&allowMultiQueries=true【允許sql語(yǔ)句中有多個(gè)insert或者update語(yǔ)句 == 支持sql批量操作】
原來(lái)的配置文件:
url: jdbc:mysql://127.0.0.1:3306/mybatis_test?useSSL=false&
現(xiàn)在的配置文件
url: jdbc:mysql://127.0.0.1:3306/mybatis_test?useSSL=false&&&allowMultiQueries=true
再次測(cè)試

到此這篇關(guān)于mybatis批量更新出現(xiàn)SQL報(bào)錯(cuò)的文章就介紹到這了,更多相關(guān)mybatis批量更新出現(xiàn)SQL報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA集成Docker實(shí)現(xiàn)快捷部署的操作步驟
這篇文章主要介紹了IDEA集成Docker實(shí)現(xiàn)快捷部署的操作步驟,通過(guò)靈活利用這一功能,開(kāi)發(fā)人員可以更快速地開(kāi)發(fā)、調(diào)試和部署應(yīng)用程序,從而提高開(kāi)發(fā)工作的效率和質(zhì)量,需要的朋友可以參考下2024-06-06
resultMap標(biāo)簽中里的collection標(biāo)簽詳解
這篇文章主要介紹了resultMap標(biāo)簽中里的collection標(biāo)簽,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
mybatis 多表關(guān)聯(lián)mapper文件寫法操作
這篇文章主要介紹了mybatis 多表關(guān)聯(lián)mapper文件寫法操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
java實(shí)現(xiàn)客戶端向服務(wù)器發(fā)送文件
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)客戶端向服務(wù)器發(fā)送文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
Springboot?前后端分離項(xiàng)目使用?POI?生成并導(dǎo)出?Excel的操作方法
在做一個(gè)?SpringBoot?前后端分離項(xiàng)目的時(shí)候,需要將數(shù)據(jù)存到?Excel中,用戶可以下載?Excel,具體實(shí)現(xiàn)是采用?Apache?強(qiáng)大的?POI,本文給大家介紹Springboot?前后端分離項(xiàng)目使用?POI?生成并導(dǎo)出?Excel相關(guān)知識(shí),感興趣的朋友一起看看吧2023-09-09
Java Springboot之Spring家族的技術(shù)體系
今天帶大家來(lái)學(xué)習(xí)Spring家族的技術(shù)體系,文中有非常詳細(xì)的圖文介紹及代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05
Spring的Aware接口實(shí)現(xiàn)及執(zhí)行順序詳解
這篇文章主要為大家介紹了Spring的Aware接口實(shí)現(xiàn)及執(zhí)行順序詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12

