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

结果

原文地址:https://www.cnblogs.com/kzyuan/p/12706600.html

时间: 04-13

MybatisPlus使用Wrapper实现查询功能的相关文章

【百度地图API】小学生找哥哥——小学生没钱打车,所以此为公交查询功能

原文:[百度地图API]小学生找哥哥--小学生没钱打车,所以此为公交查询功能 任务描述: 有位在魏公村附近上小学的小朋友,要去北京邮电大学找哥哥.他身上钱很少,只够坐公交的.所以,百度地图API快帮帮他吧! 如何实现: 把地图中心定在魏公村,在视野范围内搜索小学. 搜索完毕后,点击出现的红色标注,在输入框中输入北京邮电大学,然后查询,即可得到公交路线图. 图示: 运行代码,点击这里. 点击公交按钮需要做的查询工作. 在这里,请大家一定注意,所有公交查询,只创建一次对象.不然会有很大的内存消耗哦~

百度地图 公交查询功能

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.4"></script&g

python实现whois查询功能的方法源码

恐怕很多朋友跟我一样,使用python语言居然能实现whois服务器查询功能.下面我把代码和说明搬来给大家看看,有谁需要可以参考下.本来想直接从whois服务器查询的,但是发现要写socket 用43端口链接服务器,但是有些服务器的地址不清楚,而且查询命令貌似有改变所以不想折腾了,就想着直接用chinaz的页面实现一下算了.如下代码是在 win7下操作的,安装python3.2测试通过. Python3.2实现whois查询功能的方法源码: # -*- coding:utf-8 -*- impo

[Architecture Pattern] Repository实作查询功能

[Architecture Pattern] Repository实作查询功能 范例下载 范例程序代码:点此下载 问题情景 在系统的BLL与DAL之间,加入Repository Pattern的设计,能够切割BLL与DAL之间的相依性,并且提供系统抽换DAL的能力.但在软件开发的过程中,套用Repository Pattern最容易遇到的问题就是,如何在Repository中实作「查询」这个功能.像是在下列这个查询订单的页面,系统必须要依照用户输入的查询条件,来从DAL中查询出所有符合条件内容的

利用PHP访问数据库——实现分页功能与多条件查询功能

1.实现分页功能 <body><table width="100%" border="1">  <thead>    <tr>      <th>代号</th>      <th>名称</th>      <th>价格</th>    </tr>  </thead>  <tbody>      <?php 

组合查询功能实现

前言 这是我的第二篇文章,这是我之前做的ERP项目的时候设计实现的.在这个ERP系统中,功能比较多,表设计的时候建立了很多业务表.对于一些业务表需要执行很多查询,客户要求针对不同的字段进行查询,基于我们之前的设计,针对不同的查询条件设计不同的DAL方法,通过不同的方法签名来实现客户的对于不同条件查询的要求.但是这种解决方案会让程序员很被动,久而久之整个DAL层会显得很臃肿. 面对这样的困境,考虑是否可以实现用一个通用的DAL方法来代替所有的不同筛选条件查询方法,因为这些查询方法内部的逻辑是一样的

微信公众平台开发(35)(天气预报、股票查询、手机归属查询、在线听音乐、翻译、成绩查询功能)代码分享

微信公众平台开发应用(天气预报.股票查询.手机归属查询.在线听音乐.翻译.成绩查询功能) 原文: http://www.cnblogs.com/imaker/p/5491433.html 1.xml(信息返回用扩展语言XML来传递值) $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //extract post data if (!empty($postStr)){ $postObj = simplexml_load_string($postStr

JqueryMobile为Listview动态添加、删除查询功能

JqueryMobile的版本不同,引用JS的API也不同,因此为Listview动态添加.删除查询功能的代码也不同. 假设Listview控件内容如下: <ul data-role="listview" id="listview"  data-inset="true"> <li><a href="#">Acura</a></li> <li><a h

分页和多条件查询功能

/** * 辅助拼接HQL语句的工具类 * @author G-Xia * */ public class QueryHelper { private String fromClause; // From子句 private String whereClause = ""; // Where子句 private String orderByClause = ""; // OrderBy子句 private List<Object> parameters

easyuI企业管理系统-实战六 查询功能

今天你学习了吗?本篇讲述查询功能 class="easyui-searchbox" //easyui自带的查询类 <input class="easyui-searchbox" style="" data-options="prompt:'请输入分类名...',menu:'#mm',searcher:doSearch" plain="true" style="width:300px"