1.1 概述
- mybatis的映射文件中,前面我们的SQL都是比较简单的,有些业务逻辑复杂的时候,我们的SQL是动态变化的。
1.2 动态SQL之<if>标签
- 我们根据实体类的不同取值,使用不同的SQL语句来进行查询。比如在id如果不为空时可以根据id查询,如果username不同空时还要加入用户名作为条件。这种情况我们在多条件组合查询中经常会使用到。
1.需求:根据id或者名称查询。
2.dao 查询方法
public interface IUserDao {
/**
* 查询全部
*/
List<User> findAll();
/**
* 条件查询,根据id或username查询
*/
List<User> findByCondition(User user);
}
3.接口映射: IUserDao.xml
<!-- 动态SQL
<if> 条件判断标签
test 属性,用来判断的表达式,返回boolean类型
test="id != 0" 这里的id就是parameterType中User对象的id属性。
这里的id也是获取对象的id属性值。
-->
<select id="findByCondition" parameterType="user" resultType="user">
select * from user where 1=1
<!-- 判断 -->
<