3 MyBatis动态SQL之set标签|转
??关于动态更新语句还可以使用set元素,它可以被用于动态包含需要更新的列,而舍去其它的。set标记是MyBatis提供的一个智能标记,我一般将其用在修改的sql中,例如下述场景:
update tb_employee
name = #{name},
sex = #{sex},
age=#{age},
phone=#{phone},
where id = #{id}
??set元素会动态前置SET关键字,同时也会自动抹去where查询条件前多余的逗号,避免因为使用条件语句在生成赋值语句的后面留下不需要的逗号。在上述的代码片段当中,假如前三个字段都有值,那么在控制台打印的SQL语句如下:
update tb_employee set name='xxx', sex='xx', age='yyy' where id='x'
??在上面yyy的后面是没有逗号的,也就是说set标记已经智能地帮助我们把最后一个逗号给去掉了。
??来看看与 set 元素等价的自定义 trim 元素吧:
...
??注意,我们覆盖了后缀值设置,并且自定义了前缀值。
Reference
- http://www.mybatis.cn/archives/48.html