使用 mybatis 平時都是用遍歷集合 in ( ) ....,其實還能夠多模糊查詢和批量操做等其餘操做,要明白 foreach 元素的屬性主要意義,靈活使用,舉例以下。sql
一、根據多個品牌名字分類,模糊搜索數據,主要利用 separator="or" 這個屬性拼接 sql mybatis
<!-- 利用foreach根據多個品牌名字分類,模糊搜索數據 --> <select id="listGoodBrand" resultMap="goodsMap"> SELECT id,name,type FROM goods_brand WHERE delete_flag=0 and <foreach collection="goodList" item="item" index="index" open="(" separator="or" close=")"> name LIKE CONCAT('%',#{item},'%') </foreach> order by id desc </select>
二、批量插入角色菜單關係,利用 foreach 遍歷參數拼接 sql code
<!-- 批量插入角色菜單關係 --> <insert id="batchSave"> INSERT INTO role_menu(role_id,menu_id,create_time) values <foreach item="item" index="index" collection="list" separator=","> (#{item.roleId},#{item.menuId},now()) </foreach> </insert>