一.sql&include
为什么需要<sql>和<include>标签? 这是因为这些代码是重复的,能够消除重复会提高代码的可读性和效率。
那我们就可以使用<sql>标签对这些片段进行一个抽取。然后在原来抽取的地方再将这个<sql>片段引用进来。
二.代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//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_timefrom 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总结