Day09-10.Mybatis-动态SQL-if
1.动态SQL:随着用户的输入或外部条件的变化而变化的SQL语句,我们称为动态SQL。
2.
1.<if>
:用于判断条件是否成立。使用test属性进行条件判断,如果条件为true,则拼接SQL。
2.<where>
:where元素只会在子元素有内容的情况下才插入where子句。而且会自动去除子句开头的AND或者OR。
<?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">
<mapper namespace="com.itheima.springbootmybatiscrud2.mapper.EmpMapper">
resultType:单条记录所封装的类型(全限定名)
<select id="selectAll2" resultType="com.itheima.springbootmybatiscrud2.Pojo.Emp">
select *
from emp
<where>
<if test="name != null">
name like concat('%', #{name}, '%')
</if>
<if test="gender != null">
and gender = #{gender}
</if>
<if test="begin != null and end != null">
and entrydate between #{begin} and #{end}
</if>
</where>
order by update_time desc;
</select>
</mapper>