标签Mybatis框架的动态SQL技术是一种根据特定条件动态拼装SQL语句的功能,它存在的意义是为了
解决 拼接SQL语句字符串时的痛点问题。
- if
- where
- trim
- choose、when、otherwise
- foreach
- sql
if:根据标签内中test属性对应的表达式决定标签中的内容是否需要拼接到sql中
select * from t_emp where 1=1
and emp_name=#{empName}
and age=#{age}
and sex=#{sex}
and email=#{email}
where
where 标签中如果有内容的话,会自动添加where关键字,并且会把where标签中多于的and或者or去掉(内容前的and),如果where标签中没有任何内容的话,where标签就不会出现
trim
prefix/suffix:将trim标签中内容前面或后面添加指定内容
prefixOverrides/suffixOverrides:将trim标签中内容前面或后面去掉指定内容
若标签中没有内容:trim标签也没有任何效果
choose、when、otherwise
choose:
when:
otherwise:
choose标签为父标签,when与otherwise需要写在choose中
这一套标签相当于Java中的if,else if else,when相当于if,else if ,otherwise相当于else
when至少要有一个,otherwise最多只能有一个
foreach
场景:批量操作:添加;删除
foreach:
collection:需要设置循环的数组或集合 即 传来的数据-即数组
item:表示数组或集合中的每一个数据 即 in里面数据的属性
separator:循环体之间的分隔符 以什么为分隔符
open:以什么开始:foreach标签所循环的所有内容的开始符
close以什么结束:foreach标签所循环的所有内容的结束符
通过这两个标签可以省略()
separator:以什么为分隔符
item:in里面数据的属性,即数组中的每一个数据
delete from t_emp where
eid=#{eid}
eid}
)-->
insert into t_emp values
(null,#{emp.empName},#{emp.age},#{emp.sex},#{emp.email},null)
sql
将常用的sql片段进行记录,需要用的时候可以直接引入
//id自己命名
//这里填id名称
eid,ename,age,sex,did selectfrom t_emp



