使用 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>