动态SQL基础(if where set trim foreach choose)
动态SQL
1.基于OGNL表达式,完成多条件查询等逻辑实现
2.用于实现动态SQL的元素主要有:if trim(可以包含 where 和 set ) where set choose(when otherwise) foreach
if
where
where的作用
1.就是能够去除多余的and or 但是只能处理前缀写法
2.如果一个条件都没有,where就会自动省略
在上一个图片中用1=1来处理在第一个if为空没有语句第二个语句除出现and的情况
现在用where
set
set的作用:入某个参数为null侧数据库不更新,保持原样。
trim
使用trim记得要加重载符:prefixOverrides ,suffixOverrides
foreach
collection指定是什么类型(集合,数组,等等要与返回值一致)
index是循环的的次数从零开始
open指定以什么开始 close 指定以什么结束 这两个都有固定的写法
separator 循环数据之间用什么间隔开,用来设置分隔符
输出SQL语句 select * from user where id in(?,?,?);