set - 更新语句

当 update 语句中没有使用 if 标签时,如果有一个参数为 null,都会导致错误。

当在 update 语句中使用if标签时,如果前面的if没有执行,则或导致逗号多余错误。使用set标签可以将动态的配置 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 元素就可以动态的更新那些修改了的字段。

最新文章

  1. MapReduce剖析笔记之三:Job的Map/Reduce Task初始化
  2. 在html 中嵌入优酷视频
  3. C# 类型基础
  4. android-exploitme(三):安全连接
  5. 266. Palindrome Permutation
  6. List转换成Json、对象集合转换Json等
  7. apache加载php模块失败
  8. Android Activity之间通信
  9. CodeForces 667C Reberland Linguistics
  10. 【MySQL】通过Binary Log简单实现数据回滚(一)
  11. Android中显示gif动态图片
  12. python爬虫之selenium、phantomJs
  13. Asp.Net路由重写为用户名或者ID
  14. Linux下的搜索查找命令的详解(which)
  15. [转]详解C#组件开发的来龙去脉
  16. 菜鸟教程之工具使用(二)——Maven打包非规范目录结构的Web项目
  17. 看完了红米5 Plus发布会,我觉得魅蓝Note6降价降多了
  18. eclipse的Maven项目pom.xml错误信息提示missingxxxjar解决方案
  19. 20155321 《Java程序设计》实验三 敏捷开发与XP实践
  20. bzoj1798 维护序列

热门文章

  1. Eclipse 配置Maven以及修改默认Repository
  2. javascript基础拾遗(三)
  3. 4.3之后的PingPong效果实现
  4. CentOS 7修改管理员密码
  5. Lintcode: First Bad Version 解题报告
  6. 利用cmd代码一次性提取电脑登陆过的wifi密码到桌面
  7. gulp监听文件变化,并拷贝到指定目录(转)---参考记录
  8. centos7 安装oracle jdk 与openjdk 实现切换
  9. WPF定义样式文件的方式
  10. Ubuntu 安装 vnc server