将list传入mybatis中进行新增、修改操作

本文详细介绍了使用MyBatis进行批量数据插入和更新的XML配置方法,包括如何使用foreach标签实现对List集合的遍历,以及如何通过条件判断避免null值导致的异常。

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

新增SQL:

<insert id="insertCorresponding" parameterType="java.util.List">
	insert into tableName(
		id,a,b,c,
		create_time,update_time, is_delete
	)values
	<foreach collection="list" item="item" index="index" separator=",">
		(
			#{item.id},#{item.a},#{item.b}, #{item.c},
			#{item.createTime},#{item.updateTime}, #{item.isDelete}
		)
	</foreach>
</insert>

修改SQL:

<!--检查数据库连接中有没有:allowMultiQueries=true  没有就加上,否则报错-->
<update id="updateDCCorresponding" parameterType="java.util.List">
        <if test="list!=null">
            <foreach collection="list" item="item" index="index" open="" close="" separator=";">
                update tableName
                <trim prefix="set" suffixOverrides=",">
                    <if test="item.a!=null and item.a!=''">
                        a=#{item.a},
                    </if>
                    <if test="item.b!=null and item.b!=''">
                        b=#{item.b},
                    </if>
                    <if test="item.c!=null and item.c!=''">
                        c=#{item.c},
                    </if>
                    <if test="item.updateTime!=null and item.updateTime!=''">
                        update_time=#{item.updateTime},
                    </if>
                    <if test="item.isDelete!=null and item.isDelete!=''">
                        is_delete=#{item.isDelete},
                    </if>
                </trim>
                where
                    id=#{item.id,jdbcType=VARCHAR}
            </foreach>
        </if>
    </update>

jdbcType可加可不加
加上jdbcType原因(网络): 当传入字段值为null,时,需要加入. 否则报错.
mybatis insert空值报空值异常,但是在pl/sql不会提示错误,主要原因是mybatis无法进行转换,是因为你传入的参数的字段为null对象无法获取对应的jdbcType类型,而报错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值