MybatisPlus Wrapper 使用方式
买泛域名SSL证书 送5斤装现摘猕猴桃一箱、同时提供技开源商城搭建免费技术支持。
泛域名ssl证书 239元1年送1个月、单域名39元1年,Sectigo(原Comodo证书)全球可信证书,强大的兼容性,高度安全性,如有问题7天内可退、可开发票
加微信VX 18718058521 备注SSL证书
【腾讯云】2核2G4M云服务器新老同享99元/年,续费同价
泛域名ssl证书 239元1年送1个月、单域名39元1年,Sectigo(原Comodo证书)全球可信证书,强大的兼容性,高度安全性,如有问题7天内可退、可开发票
加微信VX 18718058521 备注SSL证书
【腾讯云】2核2G4M云服务器新老同享99元/年,续费同价
Wrapper---条件查询器
:使用它可以实现很多复杂的查询
几个案例
环境:
1.条件查询
1.1 查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于12的用户
//查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于12 @Test void selectBy01(){
QueryWrapper<User> wrapper=new QueryWrapper<>();
wrapper
.isNotNull("name") //name不为空的用户
.isNotNull("email") //邮箱不为空的用户
.ge("age",12); //年龄大于等于12
userMapper.selectList(wrapper).forEach(System.out::println);
}结果

1.2 查询 name 为 "Jone" 的用户
//查询name为 "Jone" 的用户 @Test void selectBy02(){
QueryWrapper<User> wrapper=new QueryWrapper<>();
wrapper.eq("name","Jone"); //name为 "Jone" 的用户
//查询一个数据,为多个用 selectList 或者 selectByMap
User user = userMapper.selectOne(wrapper);
System.out.println(user);
}结果

1.3 查询 10 到 20 岁的用户数
//查询 10 到 20 岁的用户数 @Test void selectBy03(){
QueryWrapper<User> wrapper=new QueryWrapper<>();
wrapper.between("age",10,20);
Integer count = userMapper.selectCount(wrapper); //查询 10 到 20 岁的用户的结果数
System.out.println(count);
}结果

2.模糊查询
2.1 使用 like + notLike + likeRight
@Test void selectLike01(){
QueryWrapper<User> wrapper=new QueryWrapper<>();
wrapper
.notLike("name","To") //名字不包含 To
.like("name","o") //名字包含 o 的 //左和右 左:%e 右:e% 两边:%e% //右查询
.likeRight("email","test");
List<Map<String, Object>> users = userMapper.selectMaps(wrapper);
users.forEach(System.out::println);
}结果

2.2 子查询
@Test void selectLike02(){
QueryWrapper<User> wrapper=new QueryWrapper<>();
wrapper //一个SQL语句写的子查询
.inSql("id","select id from user where age<20");
List<Object> users = userMapper.selectObjs(wrapper);
users.forEach(System.out::println);
}结果

2.3 降序排序
@Test void selectLike03(){
QueryWrapper<User> wrapper=new QueryWrapper<>(); //降序排序
wrapper.orderByDesc("id"); //升序排序 //wrapper.orderByAsc("id");
List<User> users = userMapper.selectList(wrapper);
users.forEach(System.out::println);
}结果




