【Mybatis】- 动态SQL

Mybatis有一项强大的功能-动态SQL,我们可以通过动态SQL为SQL语句加上一些逻辑判断,免除使用JDBC时不同条件拼接SQL的痛苦,下面我们来看一些常见动态SQL标签的应用;

【Mybatis】- 动态SQL

1、判断

  • if

作为判断入参来使用的,如果符合条件,则把if标签体内的SQL拼接上

  • choose(when,otherwise)

choose是特殊化的if,相当于if…else…,一个 choose 标签至少有一个 when, 最多一个otherwise;

2、内容处理

  • trim

trim可用于动态内容头尾的处理,可以添加前缀prefix或者添加后缀suffix
也可以移除匹配的指定的前缀prefixOverrides,或者移除匹配的指定的后缀suffixOverrides

  • where

where标签里面的if为真时,它才会把WHERE子句包含进入,而且会自动调整AND是否存在

  • set

set元素则是应用于更新,加入我们要更新某个字段

3、循环

  • foreach

foreach是一个循环语句,主要用于构建 in 条件,在 sql 中对集合进行遍历,如果传入的是一个List、Set接口的集合,这个时候就用到foreach啦;

未完待续。。。