一.sql&include
为什么需要<sql>和<include>标签? 这是因为这些代码是重复的,能够消除重复会提高代码的可读性和效率。
那我们就可以使用<sql>标签对这些片段进行一个抽取。然后在原来抽取的地方再将这个<sql>片段引用进来。
二.代码
<?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.gjw.mapper.EmpMapper">
<sql id="commonSelect">
select id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_time
from emp
</sql>
<!-- resultType:单条记录所封装的类型 -->
<select id="select" resultType="com.gjw.pojo.Emp">
<include refid="commonSelect"></include>
<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>
这样就完成了SQL片段的抽取与注入。
三.动态SQL总结