技术总结 | Mybatis 批量操作

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 devRecords);

mapper 层:


  INSERT INTO tbl_is_alarm_sub_dev (rule_id,dev_code,dev_org_code,create_datetime) VALUES

  (#{item.ruleId,jdbcType=INTEGER},
      #{item.devCode,jdbcType=VARCHAR},
      #{item.devOrgCode,jdbcType=VARCHAR},
      #{item.createDatetime,jdbcType=TIMESTAMP})
 

批量查询

接口层:

List selectBatch(List ruleIds);

mapper 层:

select id="selectBatch" parameterType="list" resultMap="BaseResultMap">
SELECT 

FROM tbl_is_alarm_sub_rule
WHERE id IN

#{item}
 

批量删除
  1. 单参数
    接口层:
int deleteBatchByRuleIds(List ruleIds);

mapper 层


    DELETE FROM tbl_is_alarm_sub_dev
    WHERE rule_id IN
    
      #{item}
    
  
  1. 多参数
    接口层:
int deleteBatch(@param("groupId") Integer groupId, @param("deleteUsers") List deleteUsers);

mapper 层:

 
    DELETE FROM tbl_is_alarm_sub_group_user WHERE
    group_id = #{groupId, jdbcType=INTEGER}
    AND user_code IN
    
      (#{item, jdbcType=VARCHAR})
    
  

你可能感兴趣的:(技术总结 | Mybatis 批量操作)