美文网首页
技术总结 | Mybatis 批量操作

技术总结 | Mybatis 批量操作

作者: 南山一棵树丶 | 来源:发表于2019-12-12 23:04 被阅读0次
Mybatis标签属性的描述
属性 描述
collection foreach需要遍历的对象,当入参为单参数时,List<?> 默认使用“list 作为键”,数组对象使用“array”作为键,Map 对象没有默认的键。多参数或者 map 类型参数时,可以使用 @param(“keyName”) 来指定 key 值。该参数必填
item 循环体中具体的对象的别名。同时支持属性获取,如:item.getName。该参数必填。
separator 元素之间的分隔符。该参数可选
open foreach代码的开始符号。常用在 in(),value()等语句中。改参数可选
close 同 open。foreach 代码的关闭符号。
index 在 list 和 array 中,index 是元素的序号。在 map 中,index 为元素的key。每次迭代到的位置。该参数可选。
批量插入操作

接口层:

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>
批量删除
  1. 单参数
    接口层:
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>
  1. 多参数
    接口层:
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>

相关文章

网友评论

      本文标题:技术总结 | Mybatis 批量操作

      本文链接:https://www.haomeiwen.com/subject/jlsxnctx.html