我们写一些复杂的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; }