#mybatis常见批量处理
在开发当中,可能经常会遇到批量处理这种情况,一般都再在java层面进行,
其本质是节省数据库连接打开关闭的的次数,占用更少的运行内存。
mybatis批量插入
<insert id="saveFeeRuleList" useGeneratedKeys="true" parameterType="java.util.List">
<selectKey resultType="java.lang.String" keyProperty="id" order="AFTER">
SELECT
LAST_INSERT_ID()
</selectKey>
INSERT INTO t_product_fee_rule(
<include refid="Base_Column_List"/>
)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.id},#{item.productId},
#{item.feeCode},#{item.feeValue},
#{item.remarks}
)
</foreach>
</insert>
mybatis批量删除
<delete id="removeProductAgent" parameterType="java.util.HashMap">
<foreach collection="maps.agentIds" item="item" index="index" open="" close="" separator=";">
DELETE FROM t_product_agent
WHERE 1 = 1
AND product_id = #{maps.productId}
AND agent_id = #{item}
</foreach>
</delete>
此处的maps接口中的@Param值对应,属于自定义变量。
void removeProductAgent(@Param("maps")Map<String, Object> map);
mybatis批量修改
<update id="saveUpdateFeeRuleList" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" open="" close="" separator=";">
UPDATE t_product_fee_rule
SET
fee_value = #{item.feeValue},
remarks = #{item.remarks}
WHERE id = #{item.id}
</foreach>
</update>
学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!