mybatis动态sql标签的使用

前提:建议配置mybatis的执行sql打印功能
在这里插入图片描述
或这种形式
在这里插入图片描述

mybatis动态sql可以在mapper.xml映射文件内,以标签的形式编写动态sql,执行时根据表达式的值,完成逻辑判断并动态拼接sql.

动态标签:
trim,where,set,foreach,if,choose,when,otherwise,bind

注意:
1.<where>与<if>配合使用,当if内的条件生效进入if时,会自动去掉第一个逻辑运算符(or,and)
2.<choose>,<when>,<otherwise>配合使用,类似于java的switch ,case,default
如图:
在这里插入图片描述
3.<set>为update时使用的动态标签,常配合<if>使用,会自动剔除追加到条件末尾的任何不相干的符号(即,)
4.<trim>可以定制化动态标签,可以完成<set>或<where>标记的功能.主要有4个参数:
① prefix:前缀
② prefixOverrides:去掉第一个and或者是or
③ suffix:后缀
④ suffixOverrides:去掉最后一个逗号,也可以是其他的标记
如图:
在这里插入图片描述
注:当<trim>内的条件没有一个执行时,后缀无法添加
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.<foreach>标签

foreach标签主要有以下参数:
item :循环体中的具体对象。支持属性的点路径访问,如item.age,item.info.details,在list和数组中是其中的对象,在map中是value。
index :在list和数组中,index是元素的序号,在map中,index是元素的key,该参数可选。
open :表示该语句以什么开始
close :表示该语句以什么结束
separator :表示元素之间的分隔符,例如在in()的时候,separator=","会自动在元素中间用“,“隔开,避免手动输入逗号导致sql错误,如in(1,2,)这样。该参数可选。

6.<bind>标签用于模糊查询
根据dialect方言,不同的数据库的模糊查询语句并不相同,通过<bind>标签进行模糊查询可以依靠不同的数据库上运行.
<bind>标签有两个属性,name为将要执行的sql语句提供一个变量名,value为拼接的字符串.
如图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考文献:
————————————————
https://blog.csdn.net/lks1139230294/article/details/87957689

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值