MyBatis之set标签使用及说明
更新时间:2026年01月30日 10:48:05 作者:JD强子
MyBatis中update语句使用set标签可以动态更新列,并且可以剔除多余的逗号,if+set标签可以避免某项为null时进行更新
MyBatis之set标签使用
在 Mybatis 中,update 语句可以使用 set 标签动态更新列。set 标签可以为 SQL 语句动态的添加 set 关键字,剔除追加到条件末尾多余的逗号。
使用 if+set 标签修改后
如果某项为 null 则不进行更新,而是保持数据库原值。
如下示例:
<!-- if/set(判断参数) - 将实体 User类不为空的属性更新 -->
<update id="updateUser_if_set" parameterType="com.pojo.User">
UPDATE user
<set>
<if test="username!= null and username != '' ">
username = #{username},
</if>
<if test="sex!= null and sex!= '' ">
sex = #{sex},
</if>
<if test="birthday != null ">
birthday = #{birthday},
</if>
</set>
WHERE user_id = #{userid};
</update>
再看看下面的一个示例
<update id="dynamicSetTest" parameterType="Blog">
update t_blog
<set>
<if test="title != null">
title = #{title},
</if>
<if test="content != null">
content = #{content},
</if>
<if test="owner != null">
owner = #{owner}
</if>
</set>
where id = #{id}
</update>
set 标签元素主要是用在更新操作的时候,它的主要功能和 where 标签元素其实是差不多的,主要是在包含的语句前输出一个 set,然后如果包含的语句是以逗号结束的话将会把该逗号忽略,如果 set 包含的内容为空的话则会出错。有了 set 元素就可以动态的更新那些修改了的字段。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- MyBatis 扩展BaseTypeHandler 转换泛型 JSON 列表的解决方法
- MyBatis中ResultSetHandler的具体使用
- 解决MybatisPlus批量插入数据报错:Error getting generated key or setting result to parameter object问题
- MybatisPlus出现Error attempting to get column ‘xxx字段‘ from result set异常解决
- mybatis之BaseTypeHandler用法解读
- MyBatis handleResultSet结果集解析过程示例
- 详解MyBatis ResultSetHandler 结果集的解析过程
相关文章
Spring Framework路径遍历漏洞(CVE-2024-38819) 的最新解决方案
本文介绍SpringFramework 6.1.14+升级方案以修复CVE-2024-38819漏洞,需检查依赖、调整配置、验证兼容性(如JDK17)、测试核心功能及准备回滚计划,确保升级后系统稳定,感兴趣的朋友跟随小编一起看看吧2025-08-08
IntelliJ IDEA 2020.1.2激活工具下载及破解方法免费可用至2089年(强烈推荐)
这篇文章主要介绍了IntelliJ IDEA 2020.1.2激活工具下载及破解方法免费可用至2089年(强烈推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-09-09


最新评论