技術(shù)總結(jié) | Mybatis 批量操作

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>
批量刪除
  1. 單參數(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>
  1. 多參數(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>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優(yōu)秀的...
    笨鳥慢飛閱讀 6,271評論 0 4
  • 1、什么是Mybatis? (1)Mybatis是一個半ORM(對象關(guān)系映射)框架,它內(nèi)部封裝了JDBC,開發(fā)時只...
    月哥說了算閱讀 484評論 0 0
  • width: 65%;border: 1px solid #ddd;outline: 1300px solid #...
    邵勝奧閱讀 5,185評論 0 1
  • mybatis中的sqlSession是線程安全的嗎? 鏈接:https://blog.csdn.net/qq_3...
    劉小刀tina閱讀 2,297評論 0 3
  • 1、什么是Mybatis? Mybatis是一個半ORM框架,封裝了JDBC,開發(fā)時只要關(guān)注SQL語句本身,不需要...
    落地生涯閱讀 3,518評論 0 1

友情鏈接更多精彩內(nèi)容