MyBatis之set标签使用及说明
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 mvc是如何实现与数据库的前后端的连接操作的?
今天给大家带来的是关于Spring mvc的相关知识,文章围绕着Spring mvc是如何实现与数据库的前后端的连接操作的展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下2021-06-06
Java调用Python脚本实现HelloWorld的示例详解
作为程序员,我们经常会遇到需要在Java项目中调用Python脚本的场景,下面我们来看看如何从基础到进阶,一步步实现Java与Python的"HelloWorld"交互吧2025-08-08
Spring注解驱动之BeanPostProcessor后置处理器讲解
这篇文章主要介绍了Spring注解驱动之BeanPostProcessor后置处理器讲解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-09-09
使用SpringBoot+InfluxDB实现高效数据存储与查询
InfluxDB 是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在 Spring Boot 项目中集成 InfluxDB 实现高效数据存储与查询功能,需要的朋友可以参考下2025-08-08
从入门到精通详解SpringBoot整合MyBatis的全攻略
在 Java 持久层框架的版图中,MyBatis 无疑占据着举足轻重的地位,本文详细解析了MyBatis核心架构,SpringBoot整合方式,动态SQL与缓存机制并分页的方案,希望对大家有一定的帮助2026-05-05


最新评论