1. 程式人生 > >mybatis中傳入一個List或Map集合作為查詢條件的引數

mybatis中傳入一個List或Map集合作為查詢條件的引數

入參為List的寫法:
Mapper 檔案的寫法:
<select id="queryParamList" resultType="map" parameterType="java.util.List">
          select id from static
          where id in 
          <foreach collection="list" index="index" item="item" open="(" separator="," close=")">  
            #{item}  
        </foreach>
  </select>

其中<foreach>這個標籤是用來迴圈傳入的集合的,collection="list"這個引數中有list,map兩種,還有就是自定義的引數,item="item"這個引數可以自定義,用來迴圈集合裡面的值,這個引數的取名要和下面#()這個裡面的取名一致。

parameterType="java.util.List"這個傳入的引數型別不能簡寫成List(其中只有基本資料型別可以簡寫)。
ps:當然,如果用in來查詢的,可以用一個string來寫,如上圖列子:將id手動拼接成一個string傳入。參照sql語句的規則。
入參為Map的寫法:
<selectid="findTeacherByPage"resultMap="supervisorResultMap"
parameterType="java.util.Map">
              select * from teacher
where name= #{name}           
                  limit #{start},#{limit}  
</select>
注:map中的key值就是name,start,limit。