JavaEE-SSM:018 动态SQL

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

当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就是模板名称

猜你喜欢

转载自blog.csdn.net/Day_and_Night_2017/article/details/84300845