3 MyBatis动态SQL之set标签|转
2022/3/30 19:19:56
本文主要是介绍3 MyBatis动态SQL之set标签|转,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1 MyBatis动态SQL之if 语句
2 MyBatis动态sql之where标签|转
3 MyBatis动态SQL之set标签|转
4 MyBatis动态SQL之trim元素|转
5 MyBatis动态sql中foreach标签的使用
6 MyBatis动态SQL之choose(when、otherwise)语句
7 MyBatis动态SQL之bind标签|转
关于动态更新语句还可以使用set元素,它可以被用于动态包含需要更新的列,而舍去其它的。set标记是MyBatis提供的一个智能标记,我一般将其用在修改的sql中,例如下述场景:
<update> update tb_employee <set> <if test="name != null and name.length()>0">name = #{name},</if> <if test="sex != null and gender.length()>0">sex = #{sex},</if> <if test="age != null">age=#{age},</if> <if test="phone != null">phone=#{phone},</if> </set> where id = #{id} </update>
set元素会动态前置SET关键字,同时也会自动抹去where查询条件前多余的逗号,避免因为使用条件语句在生成赋值语句的后面留下不需要的逗号。在上述的代码片段当中,假如前三个字段都有值,那么在控制台打印的SQL语句如下:
update tb_employee set name='xxx', sex='xx', age='yyy' where id='x'
在上面yyy的后面是没有逗号的,也就是说set标记已经智能地帮助我们把最后一个逗号给去掉了。
来看看与 set 元素等价的自定义 trim 元素吧:
<trim prefix="SET" suffixOverrides=","> ... </trim>
注意,我们覆盖了后缀值设置,并且自定义了前缀值。
Reference
- http://www.mybatis.cn/archives/48.html
这篇关于3 MyBatis动态SQL之set标签|转的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-08如何在敏捷项目中实现高效测试?
- 2024-07-08用户故事一定要有 “So that...” 吗?
- 2024-07-04TiDB 资源管控的对撞测试以及最佳实践架构
- 2024-07-03万字长文聊聊Web3的组成架构
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt