软件编程
位置:首页>> 软件编程>> java编程>> 解决mybatis update并非所有字段需要更新问题

解决mybatis update并非所有字段需要更新问题

作者:cn_TongTong  发布时间:2022-12-09 10:20:55 

标签:mybatis,update,字段更新

mybatis update并非所有字段需要更新

mybatis update

需求:更新字段作为参数,未更新字段不传入

解决办法


<update id="updateUser" parameterType="com.test.entity.User">
       update BS_USER
           <trim prefix="set" suffixOverrides=",">
               <if test="ACCOUNT != null">ACCOUNT=#{ACCOUNT},</if>
               <if test="NAME != null">NAME=#{NAME},</if>
               <if test="PROV != null">PROV=#{PROV},</if>
               <if test="FAILURE_TIME != null">FAILURE_TIME=#{FAILURE_TIME},</if>
           </trim>
       where USERID=#{USERID}
   </update>

将set标签换成<trim prefix="set"></tirm>

标签中suffixOverrides=","的意思是最后一个去掉逗号

mybatis update时遇到的问题

xml是这么写的


<update id="deleteAll"  parameterType="java.util.List" >  
   update cw_base_resident_house_ref a set state = 0
       where 1=1 and a.ID in
       <foreach item="item" collection="list" separator="," open="(" close=")" index="">
     #{item.refId}
   </foreach>
</update>

之后运行报错,就是返回的类型不对

解决mybatis update并非所有字段需要更新问题

原来是service和mapper里的类型错了,定义的是list,应该定义为int。

因为 update/delete,返回值是:影响的行数;无需指明resultClass;但如果有约束异常而删除失败,只能去捕捉异常。

来源:https://blog.csdn.net/qq_42931757/article/details/87789636

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com