Mybatis动态SQL元素一览
if判断元素
常用于判断,与test搭配使用
当roleName不是null并且不是空字符的话,动态追加sql语句:
select role_no, role_name, note from t_role where 1=1 and role_name like concat('%',#{roleName},'%')
如果roleName为空,则不追加后面的SQL:
select role_no, role_name, note from t_role where 1=1
choose、when、otherwise
扫描二维码关注公众号,回复:
4166935 查看本文章
当when成立时,后面不执行,类似于switch ···case ···case··default,默认是otherwise
使用Where条件简化where 1=1
使用Trim去掉多余字符
prefix是在此部分前添加前缀
prefixOverrides指定要去掉的多余的字符
使用SET局部字段更新
或使用Trim:
使用in模糊查询组装
item是遍历中的一项
collection是数组
index是序号
open是开始符号
close是结束符号
separator是分隔符号
注:此类查询性能损失较大
bind节点 模糊查询正则化
要实现根据roleName和note实现模糊查询
roleName是参数,value就是模板,name就是模板名称