一:条件构造器(wrapper)
更多方法查看官网:https://mp.baomidou.com/guide/wrapper.html#ge
我们写一些复杂的sql就可以使用它来替代。
1.测试一
@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);
}
2.测试二
@Test
void test2(){
//查询name=Jack的用户
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name","Jack");
User user = userMapper.selectOne(wrapper);//查询一个数据,出现多个结果使用List或者Map
System.out.println(user);
}
看一下控制台:
3.测试三
@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.测试四
//模糊查询
@Test
void 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.测试五
@Test
void 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.测试六
//排序
@Test
void test6(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
//通过id降序排序
wrapper.orderByDesc("id");
List<User> users = userMapper.selectList(wrapper);
users.forEach(System.out::println);
}
看控制台: