Mybatis標(biāo)簽屬性的描述
| 屬性 | 描述 |
|---|---|
| collection | foreach需要遍歷的對象,當(dāng)入?yún)閱螀?shù)時,List<?> 默認使用“l(fā)ist 作為鍵”,數(shù)組對象使用“array”作為鍵,Map 對象沒有默認的鍵。多參數(shù)或者 map 類型參數(shù)時,可以使用 @param(“keyName”) 來指定 key 值。該參數(shù)必填 |
| item | 循環(huán)體中具體的對象的別名。同時支持屬性獲取,如:item.getName。該參數(shù)必填。 |
| separator | 元素之間的分隔符。該參數(shù)可選 |
| open | foreach代碼的開始符號。常用在 in(),value()等語句中。改參數(shù)可選 |
| close | 同 open。foreach 代碼的關(guān)閉符號。 |
| index | 在 list 和 array 中,index 是元素的序號。在 map 中,index 為元素的key。每次迭代到的位置。該參數(shù)可選。 |
批量插入操作
接口層:
int insertBatch (List<AlarmSubDevRecord> devRecords);
mapper 層:
<insert id="insertBatch" paramterType="list">
INSERT INTO tbl_is_alarm_sub_dev (rule_id,dev_code,dev_org_code,create_datetime) VALUES
<foreach collection="list" separator="," item="item">
(#{item.ruleId,jdbcType=INTEGER},
#{item.devCode,jdbcType=VARCHAR},
#{item.devOrgCode,jdbcType=VARCHAR},
#{item.createDatetime,jdbcType=TIMESTAMP})
</foreach>
</insert>
批量查詢
接口層:
List<AlarmSubRuleRecord> selectBatch(List<Integer> ruleIds);
mapper 層:
select id="selectBatch" parameterType="list" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM tbl_is_alarm_sub_rule
WHERE id IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
批量刪除
- 單參數(shù)
接口層:
int deleteBatchByRuleIds(List<Integer> ruleIds);
mapper 層
<delete id="deleteBatchByRuleIds" parameterType="java.util.List">
DELETE FROM tbl_is_alarm_sub_dev
WHERE rule_id IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
- 多參數(shù)
接口層:
int deleteBatch(@param("groupId") Integer groupId, @param("deleteUsers") List<String> deleteUsers);
mapper 層:
<delete id="deleteBatch" parameterType="java.util.List">
DELETE FROM tbl_is_alarm_sub_group_user WHERE
group_id = #{groupId, jdbcType=INTEGER}
AND user_code IN
<foreach collection="deleteUsers" item="item" open="(" separator="," close=")">
(#{item, jdbcType=VARCHAR})
</foreach>
</delete>