Sql中可将重复的sql提取出来,使用时用include引用即可,最终达到sql重用的目的。
UserMapper.xml
<?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:命名空间,用于隔离sql -->
<!-- 还有一个很重要的作用,使用动态代理开发DAO,1. namespace必须和Mapper接口类路径一致 -->
<mapper namespace="cn.itcast.mybatis.mapper.UserMapper">
<!-- 声明sql片段 -->
<sql id="userFild">
select * from user
</sql>
<!-- 根据性别和用户名查询用户 -->
<select id="queryUserBySexAndUsername" parameterType="cn.itcast.mybatis.pojo.User" resultType="User">
<!-- 使用include标签加载sql片段;refid是sql片段id -->
<include refid="userFild"/>
<where>
<if test="sex != null and sex != ''">
sex = #{sex}
</if>
<if test="username != null and username != ''">
and username=#{username}
</if>
</where>
</select>