以查询用户信息为例
组装查询条件
@Test
public void test01(){
//查询信息包含a并且年龄在20到30之间的,邮箱信息不为null的用户
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
queryWrapper.like("name","a").between("age",20,30).isNotNull("email");
List<User> list = userMapper.selectList(queryWrapper);
list.forEach(System.out::println);
}
组装排序条件
@Test
public void test02(){
//查询用户信息,按照年龄降序排列,若年龄相同,则按照id升序排列
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("age").orderByAsc("id");
List<User> list = userMapper.selectList(queryWrapper);
list.forEach(System.out::println);
}
组装删除条件
@Test
public void test03(){
//删除邮箱地址为null的用户信息
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
queryWrapper.isNull("email");
userMapper.delete(queryWrapper);
}
实现子查询
@Test
public void test07(){
//子查询:查询id小于等于100的信息
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
queryWrapper.inSql("id","select id from user where id<=100");
List<User> list = userMapper.selectList(queryWrapper);
list.forEach(System.out::println);
}
条件优先级
@Test
public void test05(){
//条件优先级
//将用户名中含有a并且(年龄大于20或邮箱null)的用户信息修改
//lambda中的条件优先执行
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
queryWrapper.like("name","a").and(i->i.gt("age",20).or().isNull("email"));
User user=new User();
user.setName("Ming");
user.setEmail("Ming@qq.com");
userMapper.update(user,queryWrapper);
}