MybatisPlus使用Wrapper实现查询功能

MybatisPlus使用Wrapper实现查询功能

Wrapper---条件查询器

  :使用它可以实现很多复杂的查询

 环境:

  参照博客:MybatisPlus入门程序

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

 }

 

 

 

 

posted @   桂长江  阅读(2982)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示