- <if> 标签
- /**
- * 根据用户信息, 查询用户列表
- * @param user
- * @return
- */
- List<User> findByUser(User user);
- <select id="findByUser" resultType="user" parameterType="user">
- select * from user where 1=1
- <if test="username!=null and username !='' ">
- and username like #{username}
- </if>
- <if test="address != null">
- and address like #{address}
- </if>
- </select>
- <if > 标签的 test 属性中写的是对象的属性名, 如果是包装类的对象要使用 OGNL 表达式的写法. 需要注意 where 1=1 的作用.
- <where> 标签
- <!-- 根据用户信息查询 -->
- <select id="findByUser" resultType="user" parameterType="user">
- <include refid="defaultSql"></include>
- <where>
- <if test="username!=null and username !='' ">
- and username like #{username}
- </if>
- <if test="address != null">
- and address like #{address}
- </if>
- </where>
- </select>
- <foreach> 标签
- /**
- * 根据 id 集合查询用户
- * @param vo
- * @return
- */
- List<User> findInIds(QueryVo vo);
- <!-- 查询所有用户在 id 的集合之中 -->
- <select id="findInIds" resultType="user" parameterType="queryvo">
- <!-- select * from user where id in (1,2,3,4,5); -->
- <include refid="defaultSql"></include>
- <where>
- <if test="ids != null and ids.size()> 0">
- <foreach collection="ids" open="id in (" close=")" item="uid" separator=",">
- #{uid}
- </foreach>
- </if>
- </where>
- </select>
Sql 语句: select 字段 from user where id in (?)
<foreach> 标签用于遍历集合, 它的属性:
collection: 代表要遍历的集合元素, 注意编写时不要写 #{}
open: 代表语句的开始部分.
close: 代表语句的结束部分.
item: 代表遍历集合的每个元素, 生成的变量名
sperator: 代表分隔符.
来源: http://www.bubuko.com/infodetail-3487446.html