导言:
动态sql语句是:通过mybatis提供的各种标签方法实现动态拼接sql。
A: if动态标签
1:if标签(根据客户名和级别查询客户)
2:存在问题:
1.有可能传入的名称或级别为空
2.可以使用if标签来进行判断
3.如果前一个条件这后,后面就会多一个and执行就会报错
B:Where标签
1:当where后面的条件不赋值的时候,就会报错,这时候就要红到where标签。还能删除where后第1个and
C: trim标签
1:trim标签
prefix:设置前缀 在第一个条件之前加一个前缀
prefixOverrides: 条件前缀覆盖 把第一个条件之前的and变成空
suffix: 设置后缀 在最后一个条件之后加一个后缀
suffixOverrides: 条件后缀覆盖 把最后一个条件之后的and变成空
D:choose标签
1 choose 只要第一个条件满足,后面条件都不执行
when
otherwise
E:set标签
1:set标签是用与更新语句的
set标签:会添加update 中 set 并且它会把最后一个,去掉
F:foreach标签
1:查询条件值为指定的值当中(直接查询)
2: 给定的值可以以三种形式(第一种形式:数组,parameterType=“Integer"是表达用数组的方式传
参数,collection="array"同样也是对应着数组,separator=",”表示用逗号把数组之间用逗号隔开,
3: 第二种形式:List集合
4第三种形式:创建对象,首先先创建一个QueryVo类,
下面的是数组对应的查询语句
下面的是List集合对应的查询语句
G:bind标签
1:bind标签:可以取出传入的值,重新处理, 赋值给别外一个值
注意点:这里查询到的是id为4的数据。
H: Sql中可将重复的sql提取出来,使用时用include引用即可,最终达到sql重用的目的。
1:sql片段是用 <sql>标签,里面也可以用到when标签进行筛选,
用<include refid="selectID">标签替换掉一样的sql语句