mybatis批量更新踩坑

2021-09-24 18:50:53 字數 1042 閱讀 2825

說一下遇到的大坑,mybatis批量更新update語句,我們知道mysql是支援批量插入和批量刪除的,因此它也是支援批量更新的,但是批量更新的方法跟批量插入刪除略有不同,先簡單說一下mybatis批量更新的方法吧,我說知道的有兩種,一種是通過case when的方法實現批量更新,另外一種就比較簡單了,直接使用mybatis提供的foreach標籤實現批量更新。第一種方法不再具體介紹因為我使用的是第二種方法,再次詳細介紹下第二種方法。

通過使用foreach標籤,我們可以實現批量更新。

foreach標籤有幾個屬性

1.collection:必選屬性,代表要遍歷的集合資料,就是你傳入的引數集合

2.item屬性:集合中的元素名字

3.open:在前面新增的sql片段

4.close:在結尾處新增的sql片段

5.separator:指定遍歷的元素之間使用的分隔符

//批量刪除

insert into sentcar (batch,carnum,date,netweight,status) values

(#,#,#,#,#)

//批量刪除

update sentcar set status=# where batch=# and carnum=#

在修改了sql語句之後,程式終於執行成功!!困擾了一整天的大bug終於給弄好了,其實像unkown system variable 『***』的錯誤真的很讓人頭疼,因為也不是**邏輯的錯誤,所以寫**還是要細心。

最後總結一下這兩個錯誤:

1.第乙個是sql語句語法錯誤,就是 『=』前多打了個空格的問題,這裡建議書寫sql語句時一定要嚴謹,不要隨隨便便多打也不能漏打。

2.第二個錯誤就是位置系統變數的錯誤。解決辦法:

(1). 更新資料庫版本或者mysql驅動版本,這種解決辦法網上有很多,不過對我的這個錯誤好像,沒有太大作用。不過還是可以試一下的。------網上的解決辦法

(2). 檢查sql語句是否書寫正確,而且盡量將sql語句都寫在foreach迴圈中。避免報錯。------我的解決辦法。

MyBatis踩坑過程

可見錯誤可能出現在sql的對映配置中。然後出現client does not support authentication protocol requested by server consider upgrading mysql client的錯誤 然後出現unknown initial char...

Mybatis批量更新

mybatis批量更新 批量操作就不進行贅述了。減少伺服器與資料庫之間的互動。網上有很多關於批量插入還有批量刪除的帖子。但是批量更新卻沒有詳細的解決方案。這裡主要講的是1張table中。根據不同的id值,來update不同的property。資料表 1張。tblsupertitleresult。錯題...

mybatis 批量更新

mybatis批量更新 批量操作就不進行贅述了。減少伺服器與資料庫之間的互動。網上有很多關於批量插入還有批量刪除的帖子。但是批量更新卻沒有詳細的解決方案。這裡主要講的是1張table中。根據不同的id值,來update不同的property。資料表 1張。tblsupertitleresult。錯題...