1、作用
判断传入的参数情况,拼装sql语句片段。
2、需求
根据 名称和性别 查找用户
根据 名称 查找用户
3、示例
测试:
@Test
public void testIf(){
SqlSession sqlSession = SqlSessionKit.openSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
// 用户信息(查询条件) User user = new User(); user.setUsername("%小%");
// user.setSex("1");
List<User> users = mapper.findBy(user);
users.forEach(u -> System.out.println(u));
}
操作:
public interface UserMapper {
/*** 根据用户对象参数查询用户
* @param user 查询条件对象
* @return 查询结果
*/
List<User> findBy(User user);
}
配置:
<select id="findBy" resultType="com.itheima.mybatis.day03.sql.model.User">
select * from user where
<if test="username !=null and username!=''">
username like #{username}
</if>
<if test="sex !=null and sex!=''">
and sex = #{sex}
</if>
</select>
DEBUG [main] - Setting autocommit to false on JDBC Connection
[com.mysql.cj.jdbc.ConnectionImpl@4b3c354a] DEBUG [main] - ==> Preparing: select * from user
where username like ? DEBUG [main] - ==> Parameters: %小%(String) DEBUG [main] - <== Total: 3
User{id=16, username='张小明', birthday=null, sex='1', address='河南郑州'} User{id=22, username='陈
小明', birthday=null, sex='1', address='河南郑州'} User{id=25, username='陈小明', birthday=null, sex='1',
address='河南郑州'}