Mybatis 動態SQL註解 in操作符的用法

2022-08-05 19:03:12 字數 1048 閱讀 6658

在sql語法中如果我們想使用in的話直接可以像如下一樣使用:

update

user

set status='1'

where id in (1,2,3

) ;select

*from

user

where id in (1,2,3) ;

但是如果在mybatis中的使用 in 操作符,像下面這樣寫的話,肯定會報錯:

@update("update

user

set status=# where id in

#")

public void updateuserstatus(@param("userids") string userids, @param("status") int status);

其中 userids

= (1,2,3)

這樣直接拼接的寫法,看似很簡單,在 findbycondition 用沒問題,但在動態sql註解中mybatis是不支援的。

上帝關上了一扇門,就肯定會開啟一扇窗。

對於上面這種情況,mybatis中提供了foreach語句來實現in查詢。

foreach語法如下:  foreach語句中, collection屬性的引數型別可以支援:list、陣列、map集合

示例:

@update( where id in

", "

=\"index\" open

=\"(\" separator=\",\" close

=\")\">

", "#",

"foreach>

", "

script>

"})public void updateuserstatus(@param("useridlist") list useridlist, @param("status") int status);

共同學習,共同進步,若有補充,歡迎指出,謝謝!

mybatis 動態sql詳解

內容 轉到原網頁insert into t blog title,content,owner values select from t blog where id update t blog set title content owner where id select from t blog se...

mybatis入門 動態sql

mybatis核心就是對sql語句進行靈活操作,通過表示式進行判斷,對sql進行靈活拼接 組裝。現有需求如下 需要查詢使用者,輸入的是使用者類,如果使用者的性別類不為空,則將性別作為查詢條件之一,如果使用者的姓名不為空,則將使用者姓名作為查詢條件之一。如果使用者兩個屬性都為空,則查詢所有使用者。將上...

MyBatis動態sql查詢

什麼是動態sql mybatis核心 對sql語句進行靈活操作,通過表示式進行判斷,對sql進行靈活拼接 組裝。需求public class userpo if test userpo.id null and id if if where select id findusercount parame...