欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決mybatis批量更新(update foreach)失敗的問題

 更新時(shí)間:2020年11月30日 10:44:28   作者:蘇城碼  
這篇文章主要介紹了解決mybatis批量更新(update foreach)失敗的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

如下所示:

 <!--批量更新報(bào)表 -->
 <update id="updateIssueByBatch" parameterType="java.util.List">
  <foreach collection="issueList" item="item" index="index" separator=";">
   update sys_issue
   <set>
    <if test="item.first != null and item.first != ''">first_class = #{item.first}, </if>
    <if test="item.second != null and item.second != ''">second_class = #{item.second}, </if>
    updated_time = now()
   </set>
   where id = #{item.Id} 
  </foreach>
 </update>

報(bào)錯(cuò)如下:

The error occurred while setting parameters

問題描述:

上網(wǎng)查詢說是 配置mysql的時(shí)候沒有開啟批量插入,就查詢了項(xiàng)目 是否 配置了 allowMultiQueries=true ,發(fā)現(xiàn)本地和線上都配置了該語句,問題沒出在這。那么問題出在哪呢?后來發(fā)現(xiàn)是由于線上將 & 變成了 &amp; 造成的。

* 前后對(duì)比如下:*

修改前:

jdbc.url=jdbc:mysql://XXX/abc?useUnicode=true&zeroDateTimeBehavior=convertToNull&amp;allowMultiQueries=true

修改后:

jdbc.url=jdbc:mysql://XXX/abc?useUnicode=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true

補(bǔ)充知識(shí):Mybatis 批量更新失敗,單條成功

在項(xiàng)目開發(fā)過程中,結(jié)合業(yè)務(wù)場(chǎng)景,需要對(duì)某個(gè)表進(jìn)行批量更新,完成所有的業(yè)務(wù)代碼和Mybatis XML文件后,單元測(cè)試時(shí),發(fā)現(xiàn)調(diào)用批量更新只有一條記錄時(shí),執(zhí)行成功,傳入多條記錄,進(jìn)行批量更新時(shí),則提示失敗,錯(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:

其中XML映射批量更新的結(jié)構(gòu)如下:

<!-- 批量更新 -->
 <update id="batchUpdate" parameterType="java.util.List">
  <foreach collection="list" item="item" separator=";">
   update xxxxxx
   <set>
    <if test="item.xxx!= null">
     xxx= #{item.xxx,jdbcType=BIGINT},
    </if>    
    ......    
   </set>
   where id =#{item.id}
  </foreach>
 </update>

經(jīng)過代碼排查,以及批量update語句通過SQL工具直接執(zhí)行均能成功,排除代碼和sql語句問題,最后求助Google大神,發(fā)現(xiàn)使用mybatis進(jìn)行批量插入與更新時(shí),必須在配置連接url時(shí)指定allowMultiQueries=true

mysql.db.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&&allowMultiQueries=true

經(jīng)測(cè)試,完美解決此問題。

以上這篇解決mybatis批量更新(update foreach)失敗的問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺析Java基于Socket的文件傳輸案例

    淺析Java基于Socket的文件傳輸案例

    這篇文章主要針對(duì)Java基于Socket的文件傳輸案例進(jìn)行詳細(xì)解析,具有一定的參考價(jià)值,感興趣的朋友可以參考一下
    2016-02-02
  • Java中反射的學(xué)習(xí)筆記分享

    Java中反射的學(xué)習(xí)筆記分享

    反射是Java編程語言中的一個(gè)特性。它允許執(zhí)行的Java程序檢查或?操作?自身,并操作程序的內(nèi)部屬性。本文將通過幾個(gè)示例帶大家詳細(xì)了解一下Java中反射的使用,需要的可以參考一下
    2022-11-11
  • Elasticsearch外部詞庫文件更新及使用

    Elasticsearch外部詞庫文件更新及使用

    這篇文章主要為大家介紹了Elasticsearch外部詞庫文件更新及使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • java迭代器原理及迭代map的四種方式

    java迭代器原理及迭代map的四種方式

    本文我們將了解一下java迭代器原理及其在Java中迭代Map各種不同方法。具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-09-09
  • 關(guān)于SpringSecurity?Context?中獲取和更改當(dāng)前用戶信息的問題

    關(guān)于SpringSecurity?Context?中獲取和更改當(dāng)前用戶信息的問題

    SpringSecurityContext在異步線程中無法獲取用戶信息,因其與請(qǐng)求線程綁定;此外,用戶信息更新后跳轉(zhuǎn)頁面時(shí),身份會(huì)被降級(jí)為匿名,導(dǎo)致信息無法及時(shí)同步,本文給大家介紹SpringSecurity?Context?中獲取和更改當(dāng)前用戶信息的問題,感興趣的朋友一起看看吧
    2024-09-09
  • Java線程協(xié)調(diào)運(yùn)行操作實(shí)例詳解

    Java線程協(xié)調(diào)運(yùn)行操作實(shí)例詳解

    這篇文章主要介紹了Java線程協(xié)調(diào)運(yùn)行操作,結(jié)合具體實(shí)例形式詳細(xì)分析了Java線程協(xié)調(diào)運(yùn)行原理、實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-09-09
  • Java中關(guān)于字典樹的算法實(shí)現(xiàn)

    Java中關(guān)于字典樹的算法實(shí)現(xiàn)

    字典樹,又稱單詞查找樹,Trie樹,是一種樹形結(jié)構(gòu),哈希表的一個(gè)變種。用于統(tǒng)計(jì),排序和保存大量的字符串,本文針對(duì)字典樹給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值
    2021-09-09
  • 聊聊spring @Transactional 事務(wù)無法使用的可能原因

    聊聊spring @Transactional 事務(wù)無法使用的可能原因

    這篇文章主要介紹了spring @Transactional 事務(wù)無法使用的可能原因,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Spring?Boot中獲取request的三種方式及請(qǐng)求過程

    Spring?Boot中獲取request的三種方式及請(qǐng)求過程

    這篇文章主要介紹了Spring?Boot當(dāng)中獲取request的三種方式,包括請(qǐng)求過程流程分析及response常用API,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • Java程序執(zhí)行Cmd指令所遇問題記錄及解決方案

    Java程序執(zhí)行Cmd指令所遇問題記錄及解決方案

    這篇文章主要介紹了Java程序執(zhí)行Cmd指令所遇問題記錄,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論