解决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>
之后运行报错,就是返回的类型不对

原来是service和mapper里的类型错了,定义的是list,应该定义为int。
因为 update/delete,返回值是:影响的行数;无需指明resultClass;但如果有约束异常而删除失败,只能去捕捉异常。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
BeanUtils.copyProperties()属性名相同但是类型不同问题
这篇文章主要介绍了BeanUtils.copyProperties()属性名相同但是类型不同问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-09-09
MyBatis-Plus速成指南之简化你的数据库操作流程(最新推荐)
MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生,这篇文章主要介绍了MyBatis-Plus速成指南:简化你的数据库操作流程,需要的朋友可以参考下2025-02-02
springboot使用RedisRepository操作数据的实现
本文主要介绍了springboot使用RedisRepository操作数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-05-05
SpringBoot 整合 Netty 多端口监听的操作方法
Netty提供异步的、基于事件驱动的网络应用程序框架,用以快速开发高性能、高可靠性的网络 IO 程序,是目前最流行的 NIO 框架,这篇文章主要介绍了SpringBoot 整和 Netty 并监听多端口,需要的朋友可以参考下2023-10-10


最新评论