mybatis批量修改和查询

本文介绍如何使用MyBatis进行批量更新、查询和插入数据。通过XML映射文件实现批量操作,包括批量修改状态、批量查询用户数据及批量添加记录。文章详细解释了trim、foreach等元素的应用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

批量修改

使用一条sql语句更新

    <update id="batchUpdateStatus">
        UPDATE cust_vehicle
        <trim prefix="set" suffixOverrides=",">
            <trim prefix="update_status = case" suffix="end,">
                <foreach collection="list" item="i" index="index">
                    <if test="i.updateStatus != null">
                        when id=#{i.id} then #{i.updateStatus}
                    </if>
                </foreach>
            </trim>
            <trim prefix="update_time = case" suffix="end," >
                <foreach collection="list" item="i" index="index">
                    <if test="i.updateTime != null">
                        when id=#{i.id} then #{i.updateTime}
                    </if>
                </foreach>
            </trim>
        </trim>
        where
        <foreach collection="list" separator="or" item="i" index="index" >
            id=#{i.id}
        </foreach>
    </update>

<trim>属性说明 
1.prefix,suffix 表示在trim标签包裹的部分的前面或者后面添加内容 
2.如果同时有prefixOverrides,suffixOverrides 表示会用prefix,suffix覆盖Overrides中的内容。 
3.如果只有prefixOverrides,suffixOverrides 表示删除开头的或结尾的xxxOverides指定的内容。


 

批量查询

<select id="selectUserDataList" parameterType="list" resultType="String">
        select userData from tbl_hbb_user_info where mobile in
        <foreach collection="list" item="item" index="index" open="(" close=")"
                 separator=",">
            #{item.mobile}
        </foreach>
</select>

批量添加

<insert id="insertBatch">
		INSERT INTO channel_info
		<include refid="insertColumns"/>
		VALUES
		<foreach collection="list" item="entity" index="index" separator=",">
			(#{entity.id},#{entity.channelCode},#{entity.companyId},#{entity.companyName},
               #{entity.customerId},#{entity.pid},#{entity.userId},#{entity.userName},
                #{entity.taxRate},#{entity.billingType},#{entity.sealTransverseText},
                #{entity.sealSecurityCode},#{entity.signStatus},#{entity.signTime},
                #{entity.signId},#{entity.status},#{entity.remark},#{entity.createBy},
                #{entity.createTime},#{entity.updateBy},#{entity.updateTime},#{entity.del})
        </foreach>	
</insert>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值