亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:111日期:2023-10-21 10:25:20

如下所示:

<!--批量更新報(bào)表 --> <update 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 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è)參考,也希望大家多多支持好吧啦網(wǎng)。

相關(guān)文章:
主站蜘蛛池模板: 欧美精品一区二区三区久久 | 亚洲精品乱码电影在线观看 | 国产成人精品男人免费 | 高清免费毛片 | 91精品国产高清久久久久久io | 96免费精品视频在线观看 | 天天射色综合 | 欧美一区二区在线 | 亚洲国产欧美日韩 | 精品久久一区 | 国产视频每日更新 | 精精国产www视频在线观看免费 | 麻豆视频在线免费观看 | 国产亚洲精品久久午夜 | 日韩久久精品 | 美女免费视频网站 | 91精品国产调教在线观看 | 成人三级图片 | 东京道一本热大交乱 | 一本大道一卡2卡三卡4卡麻豆 | 日韩电影中文 | 毛片毛片毛片毛片毛片毛片毛片 | 五月婷婷六月丁香综合 | 国产精品一区欧美日韩制服 | 国内精品一区二区在线观看 | 国产又黄又免费aaaa视频 | 久久国产香蕉一区精品 | 欧洲美女与黑人性大战 | 亚洲国产精久久久久久久春色 | 在线免费观看黄色网址 | 看黄色网址| 日韩高清第一页 | 亚洲精品一区二区乱码在线观看 | 国语一区 | 国产精品黄在线观看观看 | 国产777 | 久久天天综合 | 国产成人手机在线好好热 | 毛片应用 | 久久久久久久综合狠狠综合 | 黄色三级在线视频 |