<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 多个字段的更多相关文章

  1. Mybatis Update statement Date null

    Mybatis Update statement Date null 只要在Model里把字段置为java的null即可.

  2. update更新两个字段

    update更新两个字段时的sql语句: update tj_record set is_recycle_reprint_guide='1' , recycle__guide_date=now() w ...

  3. 【转】MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突

    [转]MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突 在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体 ...

  4. mybatis操作动态表+动态字段+存储过程

    存储过程 statementType="CALLABLE" <!-- 计算金额存储过程--> <update id="getCalcDistributo ...

  5. 修改mybatis plus Generator模板生成字段注释枚举常量

    修改mybatis plus Generator模板生成字段注释枚举常量 本文基于最新的mybatis-plus 3.0.1版本源码修改,如果使用其它版本,处理方式也类似,主要是生成Entity的Fr ...

  6. 2.mybatis 的列名与数据库字段不对应

    mybatis 的列名与数据库字段不对应 1.别名 映射文件 : BlogMapper.xml <mapper namespace="com.xms.mybatis.mapper.Bl ...

  7. 使用SQL中的update更新多个字段值

    使用SQL中的update更新多个字段值,set后面的条件要用逗号不能用and set后面的多个条件之间没有关联也不可以有关联,所以就不能用and了:where 条件后面 可以为and 如: upda ...

  8. 【mybatis】 mybatis在mysql 更新update 操作 更新时间字段按照年月日时分秒格式 更新为当前时间

    示例代码如下: update goods_msg SET create_date = DATE_FORMAT(NOW(),'%Y-%m-%d %H:%m:%s') WHERE uid = '6183b ...

  9. Mybatis框架学习总结-解决字段名与实体类属性名不相同的冲突

    在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定是完全相同的. 1.准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY ...

随机推荐

  1. Centos7 iptables firewalld防火墙与selinux配置

    一.iptables防火墙 1.基本操作 # 查看防火墙状态 service iptables status # 停止防火墙 service iptables stop # 启动防火墙 service ...

  2. spark aggregateByKey 时 java.lang.OutOfMemoryError: GC overhead limit exceeded

    最后发现有一个用户单日访问我们网站次数为 4千万,直接导致 aggregate 时内存不够.过滤掉该用户即可.

  3. iOS直播集成和问题总结(阿里云直播)

    https://www.jianshu.com/p/714ce954e628 最近接手公司的直播项目,对以前遗留的问题做处理和优化, 于是顺便看了下阿里云直播的文档,在下面写下对直播的理解和遇到的问题 ...

  4. python用户界面编程和文件转换为exe文件

    python用户界面编程学习代码如下所示: #python用户图形界面编程实现import sys #简单用户图形界面实现from PyQt5.QtWidgets import QApplicatio ...

  5. HTML的几个注意点

    一.HTML 1.HTML5有哪些新特性?新增的标签有哪些? 新特性: 语义标签——语义化标签使得页面的内容结构化,见名知义 增强型表单——拥有多个新的表单 Input 输入类型.这些新特性提供了更好 ...

  6. SpingBoot学习(一)

    一.概述 Spring Boot是为了简化Spring应用的创建.运行.调试.部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置. 简单来说,它提供了一堆依赖打包, ...

  7. ubuntu 用管理员身份进入系统

    我们需要以管理员的身份进入系统,才能在系统中畅通无阻     以管理员的身份进入系统,往下看: Ubuntu安装好后,root初始密码(默认密码)不知道,需要设置. 1.先用安装Ubuntu的时候创建 ...

  8. Linux centosVMware zip压缩工具、tar打包、打包并压缩

    一. zip压缩工具 可以用来压缩文件和目录,压缩目录是需要指定目录下的文件. [root@davery tmp]# cp 1.txt davery/[root@davery tmp]# du -sh ...

  9. 注册模块上线前安全测试checklist

    许多应用系统都有注册模块,正常用户通过注册功能,获得应用系统使用权限:而非法用户通过注册模块,则是为了达到不可告人的目的,非法用户可以通过注册模块与服务端进行交互(一切用户输入都不可信),因此系统上线 ...

  10. php+ajax实现无刷新动态加载数据技术

    我们浏览有些网页的时候,当拉动浏览器的滚动条时到页底时,页面会继续自动加载更多内容供用户浏览.这种技术我暂且称它为滚屏加载技术.我们发现很多网站用到这种技术,必应图片搜索.新浪微博.QQ空间等将该技术 ...