Sql片段
1.目标
Sql 中可将重复的 sql 提取出来,使用时用 include 引用即可,最终达到 sql 重用的目的。我们先到 UserDao.xml 文件中使用标签,定义出公共部分.
2.讲解
- 使用sql标签抽取
<!--
使用sql标签将重复的sql语句部分封装起来
在需要使用这个sql片段的地方,就用include标签引入就行了
-->
<sql id="select_all">
select uid,username,sex,address,birthday from t_user
</sql>
- 使用include标签引入使用
<select id="findUserListByAddress" parameterType="string" resultType="User">
<include refid="select_all"/>
<!--
加入一个判断,判断传入的address是否为空,使用if标签进行判断,该标签中的test属性就编写判断条件
-->
<if test="address != null">
where address=#{address}
</if>
</select>
<select id="findUserListByAddressAndSex" parameterType="User" resultType="User">
<include refid="select_all"/>
<!--
where标签的作用:
1. 可以在条件之前添加where关键字
2. 可以去掉第一个条件前的and
-->
<where>
<if test="address != null">
and address=#{address}
</if>
<if test="sex != null">
and sex=#{sex}
</if>
</where>
</select>
3.小结
- sql标签可以把公共的sql语句进行抽取, 再使用include标签引入. 好处:好维护, 提示效率