<if>标签:
我们根据实体类的不同取值,使用不同的 SQL 语句来进行查询。比如在 id 如果不为空时可以根据 id 查询, 如果 username 不为空时还要加入用户名作为条件。这种情况在我们的多条件组合查询中经常会碰到
1.持久层 dao接口
int findUserById(@Param("id") int id);
2. 持久层 Dao 映射配置
<select id="findUserById" parameterType="INT" resultType="com.zsw.domain.User">
select * from user where 1 = 1 and
<if test="id != 0">
id = #{id}
</if>
</select>
<where> <foreach>标签
1.持久层 dao接口
List<User> findUserinIds(QueryVo queryVo);
2. 持久层 Dao 映射配置
<select id="findUserinIds" parameterType="com.zsw.domain.QueryVo" resultType="com.zsw.domain.User">
<include refid="seleUserall"></include>
<where>
<if test="list != null and list.size()>0" >
<foreach collection="list" open =" and id in ( " close=")" item="id" separator=",">
#{id}
</foreach>
</if>
</where>
</select>
<foreach>标签用于遍历集合,它的属性: collection:代表要遍历的集合元素,注意编写时不要写#{} open:代表语句的开始部分 close:代表结束部分