場景
在使用MyBatis的動態sql時,常見的是傳遞一個ID的數組,查詢記錄的
ID在這個數組中的記錄和模糊搜索這兩種場景。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。
實現
模糊搜索的實現
mapper接口寫法:
public List<KqDksz> selectKqDkszListBySx(String xm);
xml寫法:
<select id="selectKqDkszListBySx" resultMap="KqDkszResult"> <include refid="selectKqDkszVoJoinJibenXinXi"/> <where> <if test="xm != null and xm != ''"> and j.xm like concat('%', #{xm}, '%')</if> </where> </select>
foreach實現in集合
mapper層接口寫法:
public int deleteKqBcglXiangxiByIds(Long[] ids);
xml寫法:
<delete id="deleteKqBcglXiangxiByIds" parameterType="String"> delete from kq_bcgl_xiangxi where ID in <foreach item="id" collection="array" open="(" separator="," close=")"> #{id} </foreach> </delete>
注意:
這里的參數為數組參數,就需要把collection屬性設置為array
但是這是數組默認的名字,推薦使用@Param來指定參數的名字,這時collection就設置為通過@Param注解指定的名字。
比如:
public List<KqKqrysz> selectKqKqryszListBySx(@Param("badao")Long[] bmids);
對應的是
<foreach collection="badao" item="item" open="(" separator="," close=")"> ${item} </foreach>
如果這里不是數組而是list的話,那么其collection默認的就是list而不是array了。