吊爆了,这一篇一出来:MybatisPlus使用Wrapper实现查询功能

本文详细介绍了MybatisPlus的Wrapper查询器,通过实例展示了如何进行条件查询、模糊查询以及子查询等操作,包括name不为空、邮箱不为空、年龄限制、like操作、子查询和降序排序等复杂条件的组合使用。
摘要由CSDN通过智能技术生成

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);
 }

结果

总结:

所有的面试题目都不是一成不变的,特别是像一线大厂,上面的面试题只是给大家一个借鉴作用,最主要的是给自己增加知识的储备,有备无患。最后给大家分享Spring系列的学习笔记和面试题,包含spring面试题、spring cloud面试题、spring boot面试题、spring教程笔记、spring boot教程笔记、最新阿里巴巴开发手册(63页PDF总结)、2020年Java面试手册。一共整理了1184页PDF文档。私信博主(777)领取,祝大家更上一层楼!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值