动态SQL基础(if where set trim foreach choose)

动态SQL

1.基于OGNL表达式,完成多条件查询等逻辑实现

2.用于实现动态SQL的元素主要有:if trim(可以包含 where 和 set ) where set choose(when otherwise) foreach

if

动态SQL基础(if where set trim foreach choose)

where

​where的作用

1.就是能够去除多余的and or 但是只能处理前缀写法

2.如果一个条件都没有,where就会自动省略

在上一个图片中用1=1来处理在第一个if为空没有语句第二个语句除出现and的情况

现在用where
动态SQL基础(if where set trim foreach choose)

set

set的作用:入某个参数为null侧数据库不更新,保持原样。

动态SQL基础(if where set trim foreach choose)

trim

动态SQL基础(if where set trim foreach choose)

使用trim记得要加重载符:prefixOverrides ,suffixOverrides

动态SQL基础(if where set trim foreach choose)

foreach

动态SQL基础(if where set trim foreach choose)
collection指定是什么类型(集合,数组,等等要与返回值一致)
index是循环的的次数从零开始
open指定以什么开始 close 指定以什么结束 这两个都有固定的写法
separator 循环数据之间用什么间隔开,用来设置分隔符

动态SQL基础(if where set trim foreach choose)

输出SQL语句 select * from user where id in(?,?,?);

choose(when otherwise)

动态SQL基础(if where set trim foreach choose)
动态SQL基础(if where set trim foreach choose)
动态SQL基础(if where set trim foreach choose)