<if>标签:
根据实体类的不同取值,使用不同的 SQL语句来进行查询。比如在 id如果不为空时可以根据id查询,如果username 不为空时还要加入用户名作为条件。这种情况在我们的多条件组合查询中经常会碰到。
1 <select id="findByCondition" parameterType="user" resultType="user"> 2 select * from User 3 <where> 4 <if test="id!=0"> 5 and id=#{id} 6 </if> 7 <if test="username!=null"> 8 and username=#{username} 9 </if> 10 </where> 11 </select>
<foreach>标签:
循环执行sql的拼接操作,例如:SELECT * FROM USER WHERE id IN (1,2,5)。传入的参数得是数组或者集合
1 <select id="findByIds" parameterType="list" resultType="user"> 2 select * from User 3 <where> 4 <foreach collection="array" open="id in(" close=")" item="id" separator=","> 5 #{id} 6 </foreach> 7 </where> 8 </select>
foreach标签的属性含义如下:
<foreach>标签用于遍历集合,它的属性:
• collection:代表要遍历的集合元素,注意编写时不要写#{}
• open:代表语句的开始部分
• close:代表结束部分
• item:代表遍历集合的每个元素,生成的变量名
• sperator:代表分隔符