Sql 中可将重复的 sql 提取出来,使用时用 include 引用即可,最终达到 sql 重用的目的。我们先到 UserDao.xml 文件中使用标签,定义出公共部分.
<!-- 使用sql标签将重复的sql语句部分封装起来 在需要使用这个sql片段的地方,就用include标签引入就行了 --> <sql id="select_all"> select uid,username,sex,address,birthday from t_user </sql>
<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>