MybatisPlus条件构造器Wrapper

我们写一些复杂的sql就可以使用它来替代!

1、测试一: 查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于12

@Test
void contextLoads() {
// 查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于12
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper
.isNotNull("name")
.isNotNull("email")
.ge("age",12);
userMapper.selectList(wrapper).forEach(System.out::println); //map对比一下
}

2、测试二:查询名字狂神说(bilibili中搜索,讲的很好)

@Test
void test2(){
// 查询名字狂神说
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name","狂神说");
User user = userMapper.selectOne(wrapper); // 查询一个数据,出现多个结果使用List
或者 Map
System.out.println(user);
}

3、测试三: 查询年龄在 20 ~ 30 岁之间的用户

@Test
void test3(){
// 查询年龄在 20 ~ 30 岁之间的用户
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.between("age",20,30); // 区间
Integer count = userMapper.selectCount(wrapper);// 查询结果数
System.out.println(count);
}

4、测试四:查询年龄在 20 ~ 30 岁之间的用户

@Test
void test4(){
// 查询年龄在 20 ~ 30 岁之间的用户
QueryWrapper<User> wrapper = new QueryWrapper<>();
// 左和右 t%
wrapper
.notLike("name","e")
.likeRight("email","t");
List<Map<String, Object>> maps = userMapper.selectMaps(wrapper);
maps.forEach(System.out::println);
}

5、测试五:id 在子查询中查出来

@Test
void test5(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
//
wrapper.inSql("id","select id from user where id<3");
List<Object> objects = userMapper.selectObjs(wrapper);
objects.forEach(System.out::println);
}

6、测试六:通过id进行排序

@Test
void test6(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
// 通过id进行排序
wrapper.orderByAsc("id");
List<User> users = userMapper.selectList(wrapper);
users.forEach(System.out::println);
}

使用添加构造器来分页

public Page<Users> FindListUsers(Integer index, Integer size) throws Exception {
      Page<Users> page = new Page<>(index,size);
      QueryWrapper<Users> wapper = new QueryWrapper<Users>();
      wapper.eq("name", "张三");
      ...
      userMapper.selectPage(page, wapper);
      return page;
    }
原文地址:https://www.cnblogs.com/64Byte/p/13234926.html