解決mybatis批量更新出現(xiàn)SQL報錯問題
一、問題重現(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 所用日志的具體實現(xiàn),未指定時將自動查找
map-underscore-to-camel-case: true #開啟自動駝峰命名規(guī)則(camel case)映射
lazy-loading-enabled: true #開啟延時加載開關
aggressive-lazy-loading: false #將積極加載改為消極加載(即按需加載),默認值就是false
lazy-load-trigger-methods: "" #阻擋不相干的操作觸發(fā),實現(xiàn)懶加載
cache-enabled: true #打開全局緩存開關(二級環(huá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.測試
查看控制臺錯誤

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

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

但是在SQL編輯器中執(zhí)行多條sql語句的時候是可以以分號結尾的,如:

三、解決方法
在application.properties配置文中的數(shù)據(jù)源url后面添加一個參數(shù)
&allowMultiQueries=true【允許sql語句中有多個insert或者update語句 == 支持sql批量操作】
原來的配置文件:
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
再次測試

到此這篇關于mybatis批量更新出現(xiàn)SQL報錯的文章就介紹到這了,更多相關mybatis批量更新出現(xiàn)SQL報錯內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mybatis 多表關聯(lián)mapper文件寫法操作
這篇文章主要介紹了mybatis 多表關聯(lián)mapper文件寫法操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
Springboot?前后端分離項目使用?POI?生成并導出?Excel的操作方法
在做一個?SpringBoot?前后端分離項目的時候,需要將數(shù)據(jù)存到?Excel中,用戶可以下載?Excel,具體實現(xiàn)是采用?Apache?強大的?POI,本文給大家介紹Springboot?前后端分離項目使用?POI?生成并導出?Excel相關知識,感興趣的朋友一起看看吧2023-09-09
Spring的Aware接口實現(xiàn)及執(zhí)行順序詳解
這篇文章主要為大家介紹了Spring的Aware接口實現(xiàn)及執(zhí)行順序詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12

