狂神说Java:https://www.bilibili.com/video/BV17E411N7KN?p=14学习笔记
条件查询器Wrapper作用:完成较为复杂的条件查询工作
一、条件查询
测试一:查询name不为空、邮箱不为空、年龄大于等于18岁的用户
@Test
void selecteTest(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper
.isNotNull("name")
.isNotNull("email")
.ge("age",12);
userMapper.selectList(wrapper).forEach(System.out::println);
}
测试二:查询名字为liniqngxia的用户
void test01(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name","liniqngxia");
User user = userMapper.selectOne(wrapper);//查询一个数据,出现多个使用List或Map
System.out.println(user);
}
测试三:查询年龄在10-20岁之间的用户数量
@Test
void test02(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.between("age", 10, 20);
Integer integer = userMapper.selectCount(wrapper);
System.out.println(integer);
}
二、模糊查询
测试一:查询名字中包含e且邮箱已t开头的用户
@Test
void test03(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper
.like("name","e") //名字中包含e
.likeRight("email","t"); //相当于 t%
List<Map<String, Object>> maps = userMapper.selectMaps(wrapper);
maps.forEach(System.out::println);
}
三:子查询
@Test
void test04(){
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);
}
四、查询排序
测试一:通过id降序排序
@Test
void test05(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.orderByDesc("id");
List<User> users = userMapper.selectList(wrapper);
users.forEach(System.out::println);
}