1. 程式人生 > >Mybatis list 新增 一個list元素中的條件

Mybatis list 新增 一個list元素中的條件

今天在寫專案的時候,遇到一個問題,關於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,會好操作點。

不過這樣問題也不大