<!--nysql数据库是不区分大小写的 要想区分加上binary关键字--><selectid="find"resultType="Emp">
select * from emp
<iftest="ename!=null and ename!=''">
where ename like '%${ename}%'
</if></select>
<!--是不区分大小写的 要想区分加上binary
where配合if使用 有一个才带上where
--><selectid="find"resultType="Emp">
select * from emp
<where><iftest="ename!=null and ename!=''">
ename like '%${ename}%'
</if><iftest="job!=null and job!=''">
and job like '%${job}%'
</if></where></select>
<!--choose 类似于switch或多重if--><selectid="choose"resultType="Emp">
select * from emp
<choose><whentest="ename!=null">
where ename like '%${ename}%'
</when><whentest="job!=null">
where job like '%${job}%'
</when><otherwise>
order by sal desc
</otherwise></choose></select>
a choose标签和when标签或者otherwise搭配使用
b when标签test属性里面写的规则和if一致,传入是是一个变量,就写变量名,若传入的是一个对象,则写对象里面的属性即可
如传入emp对象 emp对象里面的ename、mgr等都能在test属性里面使用
c choose标签只会执行里面的一个条件
a set标签里面的if标签只要有一个符合条件,则会加上set标签,没有一个符合条件的时候,会一个在修改提前进行判断的,不会让其执行这条语句的
b set标签一般于if搭配着使用
c 多个条件时,逗号写在第二个if标签里面的前头
5 范围查找(in标签)
5.1 集合形式
5.1.1 接口方法
List<Emp>for1(List<Integer> deptnos);
5.1.2 xml文件中select标签
<selectid="for1"resultType="Emp">
select * from emp WHERE deptno in
<foreachcollection="list"item="id"open="("close=")"separator=",">
#{id}
</foreach></select>
<selectid="for2"resultType="Emp">
select * from emp WHERE job in
<foreachcollection="array"item="j"open="("close=")"separator=",">
#{j}
</foreach></select>