mybatis update set 多个字段实例

 更新时间:2021年01月25日 09:02:52   作者:huangwanlin  
这篇文章主要介绍了mybatis update set 多个字段实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

我就废话不多说了,大家还是直接看代码吧~

<update id="updateCustomer" parameterType="com.entrym.domain.Customer">
  UPDATE customer set
  <if test="name!=null">name=#{name,jdbcType=VARCHAR},</if>
  <if test="role!=null">role=#{role,jdbcType=VARCHAR},</if>
  <if test="userId != null">user_id = #{userId,jdbcType=INTEGER},</if>
  <if test="qq != null">qq = #{qq,jdbcType=VARCHAR},</if>
  <if test="mobile != null">mobile = #{mobile,jdbcType=VARCHAR}</if>
  WHERE id =#{id,jdbcType=BIGINT}

如果上面的mobile字段为null,执行下面的SQL语句

UPDATE customer set name=?,role=?,userId=?,qq=?, where id=?

where 前面有逗号“,”就会报错

使用trim可以删掉最后字段的逗号“,”

set已被包含在trim中,所以不用重复写了:

<update id="updateCustomer" parameterType="com.entrym.domain.Customer">
  UPDATE customer
  <trim prefix="set" suffixOverrides=",">
   <if test="claimTime!=null">claim_time=#{claimTime,jdbcType=VARCHAR},</if>
   <if test="claimState!=null">claim_state=#{claimState,jdbcType=INTEGER},</if>
   <if test="name!=null">name=#{name,jdbcType=VARCHAR},</if>
   <if test="role!=null">role=#{role,jdbcType=VARCHAR},</if>
   <if test="platformAccount!=null">platform_account=#{platformAccount,jdbcType=VARCHAR},</if>
   <if test="collaborateTime!=null">collaborate_time=#{collaborateTime,jdbcType=VARCHAR},</if>
   <if test="collaborateState!=null">collaborate_state=#{collaborateState,jdbcType=INTEGER},</if>
   <if test="userId != null">user_id = #{userId,jdbcType=INTEGER},</if>
  <if test="qq != null">qq = #{qq,jdbcType=VARCHAR},</if>
  <if test="mobile != null">mobile = #{mobile,jdbcType=VARCHAR}</if>
   </trim>
   WHERE id =#{id,jdbcType=BIGINT}
</update> 

转义字符:

&lt; 小于号 <

&gt; 大于号 >

&amp; 和 &

&apos; 单引号 '

&quot; 双引号 "

补充:Mybatis中update时set和if的用法

update时set和if的用法 每个修改都加逗号 set能够智能的去掉最后一个逗号。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • Java使用注解实现防止重复提交实例

    Java使用注解实现防止重复提交实例

    这篇文章主要介绍了Java使用注解实现防止重复提交实例,在一些项目中由于用户误操作,多次点击表单提交按钮,会产生很多次的数据交互,为了解决这一问题,本文使用注解来实现防止重复提交,需要的朋友可以参考下
    2023-07-07
  • spring boot微服务自定义starter原理详解

    spring boot微服务自定义starter原理详解

    这篇文章主要介绍了spring boot微服务自定义starter原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Java网络IO模型详解(BIO、NIO、AIO)

    Java网络IO模型详解(BIO、NIO、AIO)

    Java支持BIO、NIO和AIO三种网络IO模型,BIO是同步阻塞模型,适用于连接数较少的场景,NIO是同步非阻塞模型,适用于处理多个连接,支持自JDK1.4起,AIO是异步非阻塞模型,适用于异步操作多的场景,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-10-10
  • Springboot集成ProtoBuf的实例

    Springboot集成ProtoBuf的实例

    这篇文章主要介绍了Springboot集成ProtoBuf的实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • java提取字符串中数字string以及获取字符串中的整数或小数

    java提取字符串中数字string以及获取字符串中的整数或小数

    这篇文章主要给大家介绍了关于java提取字符串中数字string以及获取字符串中的整数或小数的相关资料,需要的朋友可以参考下
    2023-08-08
  • Spring ApplicationContext接口功能详细介绍

    Spring ApplicationContext接口功能详细介绍

    ApplicationContext是Spring应用程序中的中央接口,由于继承了多个组件,使得ApplicationContext拥有了许多Spring的核心功能,如获取bean组件,注册监听事件,加载资源文件等
    2023-02-02
  • 使用IDEA开发配置Java Web的初始化过程

    使用IDEA开发配置Java Web的初始化过程

    该教程使用idea开发工具初始化javaweb项目,该运行在tomcat服务器上通过配置项目环境变量保证tomcat正常启动,具体操作配置教程参考下本文
    2021-06-06
  • SpringBoot整合spring-retry实现接口请求重试机制及注意事项

    SpringBoot整合spring-retry实现接口请求重试机制及注意事项

    今天通过本文给大家介绍我们应该如何使用SpringBoot来整合spring-retry组件实现重试机制及注意事项,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2021-08-08
  • 关于Spring Boot内存泄露排查的记录

    关于Spring Boot内存泄露排查的记录

    这篇文章主要介绍了关于Spring Boot内存泄露排查的记录,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • spring cloud 的监控turbine-rabbitmq的示例

    spring cloud 的监控turbine-rabbitmq的示例

    这篇文章主要介绍了spring cloud 的监控turbine-rabbitmq的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05

最新评论