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 元素就可以动态的更新那些修改了的字段。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java如何根据word模板导出数据

    Java如何根据word模板导出数据

    这篇文章主要为大家详细介绍了Java如何实现根据word模板导出数据,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-05-05
  • SpringMVC通过Ajax处理Json数据的步骤详解

    SpringMVC通过Ajax处理Json数据的步骤详解

    这篇文章主要介绍了SpringMVC通过Ajax处理Json数据的步骤详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Spring mvc是如何实现与数据库的前后端的连接操作的?

    Spring mvc是如何实现与数据库的前后端的连接操作的?

    今天给大家带来的是关于Spring mvc的相关知识,文章围绕着Spring mvc是如何实现与数据库的前后端的连接操作的展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Java调用Python脚本实现HelloWorld的示例详解

    Java调用Python脚本实现HelloWorld的示例详解

    作为程序员,我们经常会遇到需要在Java项目中调用Python脚本的场景,下面我们来看看如何从基础到进阶,一步步实现Java与Python的"HelloWorld"交互吧
    2025-08-08
  • Spring注解驱动之BeanPostProcessor后置处理器讲解

    Spring注解驱动之BeanPostProcessor后置处理器讲解

    这篇文章主要介绍了Spring注解驱动之BeanPostProcessor后置处理器讲解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • SpringBoot实现无限级评论回复的项目实践

    SpringBoot实现无限级评论回复的项目实践

    本文主要介绍了SpringBoot实现无限级评论回复的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Java实现为Word文档添加背景颜色或背景图片

    Java实现为Word文档添加背景颜色或背景图片

    在实际开发中,我们有时需要对 Word 文档进行定制化处理,这篇文章主要介绍了如何使用Java实现为Word文档添加背景颜色或背景图片,有需要的可以了解下
    2026-03-03
  • 使用SpringBoot+InfluxDB实现高效数据存储与查询

    使用SpringBoot+InfluxDB实现高效数据存储与查询

    InfluxDB 是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在 Spring Boot 项目中集成 InfluxDB 实现高效数据存储与查询功能,需要的朋友可以参考下
    2025-08-08
  • 从入门到精通详解SpringBoot整合MyBatis的全攻略

    从入门到精通详解SpringBoot整合MyBatis的全攻略

    在 Java 持久层框架的版图中,MyBatis 无疑占据着举足轻重的地位,本文详细解析了MyBatis核心架构,SpringBoot整合方式,动态SQL与缓存机制并分页的方案,希望对大家有一定的帮助
    2026-05-05
  • Java自动化实现提取PDF表格数据

    Java自动化实现提取PDF表格数据

    在数字化背景下,数据是企业决策的重要依据,如何高效、准确地将PDF中的表格数据提取出来,并转换为可分析的结构化格式是面临的普遍问题,下面我们就来看看具体实现方法吧
    2025-09-09

最新评论