首页 > 其他 > 详细

mybatis 批量执行

时间:2020-03-25 16:30:47      阅读:51      评论:0      收藏:0      [点我收藏+]

批量新增

   <!-- 批量新增节点权限 -->
    <insert id="addNodeRightsBatch" parameterType="Map">
        INSERT INTO ${tableName}
        (id, nodeId, companyId, rights, operateOjbect,
        objType, createUser, updateUser, isAdmin, createDate, updateDate,view)
        VALUES
        <foreach collection="list" item="item" index="index" separator=",">
            (#{item.id},#{item.nodeId},#{item.companyId},#{item.rights},#{item.operateOjbect},#{item.objType},#{item.createUser},#{item.updateUser},
            #{item.isAdmin},now(),now(),#{item.view})
        </foreach>
    </insert>

批量修改

    <!-- 批量修改节点权限 -->
    <update id="updateNodeRightsBatch" parameterType="Map">
        UPDATE ${tableName} 
        <trim prefix="set" suffixOverrides=",">
            <trim prefix="rights =case" suffix="end,">
                <foreach collection="list" item="item" index="index">
                     WHEN id = #{item.id} THEN #{item.rights}
                </foreach>
            </trim>
        </trim>
        WHERE
        <foreach collection="list" separator=" ) or (" item="item" index="index" open="(" close=")">
            id = #{item.id}
        </foreach>
    </update>

批量删除

    <!-- 删除节点权限 -->
    <delete id="deleteByNodeIdAndOperateObject" parameterType="Map">
        DELETE FROM
        ${tableName}
        WHERE companyId=#{companyId}
        AND (nodeId = -1 
        <foreach collection="list" item="item">
            OR nodeId IN (${item.nodeId})
        </foreach>)
        AND operateOjbect = #{operateObject}
    </delete>

对list集合实现分组的两种方案:

一:使用List.subList(fromIndex,toIndex)-->(开始位置,从零开始,结束为止,不包含结束位置)

    int size = list.size();
    for (int i = 0; i < size; i=i+1000){
         List<NodeRights> subList =  list.subList(i, i+1000 > size? size:i+1000);                
         Map<String, Object> dataMap = new HashMap<>(1);
         dataMap.put("list", subList);
         ret = this.insert("JC_TABLE.XXX", dataMap);
    }

mybatis 批量执行

原文:https://www.cnblogs.com/huakaiyoushi/p/12566409.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!