mybatis批量查询,批量更新

文章描述了一个在Java中使用JDBC进行批量数据质量检查记录查询的方法,通过`SELECT`语句筛选未删除的记录,如果传入的列表不为空,会根据预批ID进行分组并过滤,确保每个预批ID有超过2条记录,最后按预批ID升序排序。返回值类型强调不应为List,而是指向一个更抽象的接口。
摘要由CSDN通过智能技术生成

批量查询

 <select id="getPreIds" resultType="java.lang.String"
            parameterType="java.util.List">
        SELECT  pre_batch_id  FROM public.mine_data_quality_check_record  WHERE deleted=0

        <if test="list != null">
            AND pre_batch_id in (
            <foreach collection="list" item="id" separator=",">
                #{id}
            </foreach>
            )
        </if>
        GROUP BY pre_batch_id HAVING count(*)>2 ORDER BY pre_batch_id ASC

    </select>

返回值类型不应该写List,抽象接口处写在这里插入图片描述

批量更新
在这里插入代码片

 <update id="batchUpdate" parameterType="java.util.List">
        <foreach collection="list" item="item" separator=";">
        UPDATE mine_evaluation SET
        tb_area=#{item.tbArea},
        pollution_soil_control=#{item.pollutionSoilControl},
        pollution_soil=#{item.pollutionSoil},
        pollution_sludge=#{item.pollutionSludge},
        pollution_irrigation_water=#{item.pollutionIrrigationWater},
        pollution_waste_water=#{item.pollutionWasteWater},
        pollution_solid=#{item.pollutionSolid},
        sample_count=#{item.sampleCount},
        spot_count=#{item.spotCount},
        is_pollution=#{item.isPollution},
        is_country=#{item.isCountry},
        is_wf=#{item.isWf} WHERE tbbh=#{item.tbbh}
        </foreach>
 </update>

经常会报错:在这里插入图片描述
可能是数据太多了,要减少批量更新的数据!!!!!!!!!!
批量更新除了使用多线程之外,还应适当的添加索引

索引与批量更新的关系
当你在更新语句中使用 WHERE 子句来指定要更新的行时,索引可以帮助快速找到这些行。例如:
UPDATE table SET column = newValue WHERE id = someId;
如果 id 字段有索引,这条语句的执行会更快。
索引在某些情况下也可能减慢更新速度。因为每次更新操作不仅要修改数据,还要更新相关的索引。因此,如果更新的字段本身有索引,频繁的更新操作可能会导致索引维护的开销。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值