Mybatis list 新增 一個list元素中的條件
阿新 • • 發佈:2018-12-22
今天在寫專案的時候,遇到一個問題,關於mybatis的問題。
在select的時候,如果傳入的引數是一個list,這時,我們需要用到
WHERE
t.id in (
<foreach collection="list" index="index" item="item" separator="," >
#{item.id}
</foreach>
class Student{
private int id;
private String name;
//班級
private String grade;
}
例如上述,當我想加一批學生時,卻不知如何新增一個條件,比如班級(這個條件判斷的引數,在list中的每一個學生都有這個欄位)。可能不太現實,但是意思是這樣。畢竟業務有時候比較複雜,不好舉例。
這時候,我可以通過使用下面這樣的方式,新增判斷。
WHERE
t.grade = #{list[0].grade}
最後就是這樣
SELECT
t.name
from
student t
WHERE
t.id in (
<foreach collection="list" index="index" item="item" separator="," >
#{item.id}
</foreach>
AND
t.grade = #{list[0].grade}
注:這種方法,不是很推薦,建議可以把List換成Map,會好操作點。
不過這樣問題也不大