1.choose、when、othewise元素相当于Java代码中switch...case...default功能的语句
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace对应的是接口全限定名称 于是mybatis上下文就通过它找到对应的接口-->
<mapper namespace="xuexi.mybatis.dao.mapper.SysRoleMapper">
<select id="getRole" parameterType="java.lang.String" resultType="sysRole" >
select * from role where 1=1
<choose>
<!--当when条件为true拼接when元素内SQL -->
<!-- r_name(角色名称)参数不等于空,测采取对r_name模糊查询 -->
<when test="r_name !=null and r_name !=''">
and r_name like concat('%', #{r_name} ,'%')
</when>
<!--当when条件为true拼接when元素内标SQL -->
<!-- note(备注)参数不等于空,测采取对note模糊查询 -->
<when test="note !=null and note!=''">
and note like concat('%', #{note} ,'%')
</when>
<!--当when元素条件都为false,则拼接otherwise元素内SQL-->
<otherwise>
and note is not null
</otherwise>
</choose>
</select>
</mapper>