使用 Mybatis 的 foreach 批量模糊 like 查詢及批量插入

使用 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>
相關文章
相關標籤/搜索