一:条件构造器(wrapper)
更多方法查看官网:https://mp.baomidou.com/guide/wrapper.html#ge
我们写一些复杂的sql就可以使用它来替代。
1.测试一
@Testvoid contextLoads() {//查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于12岁的。QueryWrapper<User> wrapper = new QueryWrapper<>();wrapper.isNotNull("name").isNotNull("email").ge("age",12);userMapper.selectList(wrapper).forEach(System.out::println);}
2.测试二
@Testvoid test2(){//查询name=Jack的用户QueryWrapper<User> wrapper = new QueryWrapper<>();wrapper.eq("name","Jack");User user = userMapper.selectOne(wrapper);//查询一个数据,出现多个结果使用List或者MapSystem.out.println(user);}
看一下控制台:
3.测试三
@Testvoid test3(){//查询年龄在20-30之间的用户QueryWrapper<User> wrapper = new QueryWrapper<>();wrapper.between("age",20,30);//区间Integer count = userMapper.selectCount(wrapper);//查询结果数System.out.println(count);}
看控制台:
4.测试四
//模糊查询@Testvoid test4(){//查询年龄在20-30之间的用户QueryWrapper<User> wrapper = new QueryWrapper<>();//左和右 %e%wrapper.notLike("name","e").likeRight("email","t");List<Map<String, Object>> maps = userMapper.selectMaps(wrapper);maps.forEach(System.out::println);}
看控制台sql:
5.测试五
@Testvoid test5(){//查询年龄在20-30之间的用户QueryWrapper<User> wrapper = new QueryWrapper<>();//id在子查询中查出来wrapper.inSql("id","select id from user where id < 3");List<Object> objects = userMapper.selectObjs(wrapper);objects.forEach(System.out::println);}
看控制台
6.测试六
//排序@Testvoid test6(){QueryWrapper<User> wrapper = new QueryWrapper<>();//通过id降序排序wrapper.orderByDesc("id");List<User> users = userMapper.selectList(wrapper);users.forEach(System.out::println);}
看控制台: