跟单表分页查询差不多

1.编写查询语句

 public interface QuestionMapper extends BaseMapper<Question> {
@Select("SELECT * FROM question,result WHERE question_id=result_id ")
List<QuestionResultPagingVo> getQuestionResultPage(Page page);
}

2.编写service

 @Service
public class QuestionServiceImpl implements QuestionService {
@Resource
private QuestionMapper questionMapper; /**
* public Page<T> setRecords(List<T> records) {
* this.records = records;
* return this;
* }
* records包含查询数据列表,setRecords返回一个简单分页模型
* questionMapper.getQuestionResultPage(page)返回一个查询分页查询数据,
* 如果Page<QuestionResultPagingVo> pages = new Page<>(1,2);
* 那么questionMapper.getQuestionResultPage(pages)就会以一页2个元素大小,返回第一页的数据。
* 使用page.setRecords主要是为了使用Page.getTotal()获取共有多少页这个属性
*
* @param page
* @return
*/
@Override
public Page<QuestionResultPagingVo> getQuestionResultPage(Page<QuestionResultPagingVo> page) {
return page.setRecords(questionMapper.getQuestionResultPage(page));
}
}

本质上是使用MybatisPlus提供的分页插件Page完成的

其实Page<QuestionResultPagingVo> pages = new Page<>(1,2);后再执行questionMapper.getQuestionResultPage(pages);

然后同样可以使用pages.getTotal()获取总条数,Page是个很灵活好用的东西,不用用死了,看看源码分析分析方法

3.controller调用

  @RequestMapping("/questionResult/page")
@ResponseBody
public Map<String, Object> resultPage(
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "5")Integer limit) { Map<String, Object> map = new LinkedHashMap<>(); Page<QuestionResultPagingVo> pages = new Page<>(page,limit); Page<QuestionResultPagingVo> resultPage = questionService.getQuestionResultPage(pages);
if (resultPage.getRecords().size() == 0) {
map.put("code", 400);
} else {
map.put("code", 0);
map.put("msg", "");
map.put("count", resultPage.getTotal());
map.put("data", resultPage.getRecords());
}
return map;
}

附上demo

其实这是个问卷的结果统计,用了layui的分页,还有echarts的图表

源码在github

MybatisPlus联合分页查询的更多相关文章

  1. .net通用CMS快速开发框架——问题1:Dapper通用的多表联合分页查询怎么破?

    最近在弄一个东东,类似那种CMS的后台管理系统,方便作为其它项目的初始化框架用的. 现在遇到个问题,如标题所示:Dapper通用的多表联合分页查询怎么破? 难道只能通过拼接sql或者使用存储过程吗?我 ...

  2. JEECG(三) JEECG minidao如何封装自己的 多表联合查询 分页查询

    JEECG确实是一款实实在在的促进生产力的工具好处我想看到此文章的人应该都有所体会了 言归正传 JEECG框架自带的查询确实很省事,但是多表联合查询 分页查询 是我们开发业务系统当中不可避免的这时框架 ...

  3. Mybatis-plus之RowBounds实现分页查询

    物理分页和逻辑分页 物理分页:直接从数据库中拿出我们需要的数据,例如在Mysql中使用limit. 逻辑分页:从数据库中拿出所有符合要求的数据,然后再从这些数据中拿到我们需要的分页数据. 优缺点 物理 ...

  4. Mybatis-plus多表关联查询,多表分页查询

    学习plus真的觉得写代码真的越来越舒服了.昨天开始接触吧,只要学会了多表关联查询.plus就能随意搭配使用了. 关于怎么搭建的就自行了去研究了哦.这里直接进入主题. 我用的是springboot+m ...

  5. Mysql--子查询、分页查询、联合查询

    一. 子查询的定义 出现在其他语句中的select语句,称为子查询或者内查询,外部的查询语句称为主查询或者外查询,子查询可以包含普通select可以包含的任何语句. 外部查询:select.inser ...

  6. mybatis-plus分页查询

    在springboot中整合mybatis-plus 按照官方文档进行的配置:快速开始|mybatis-plus 引入依赖: <!-- 引入mybatisPlus --> <depe ...

  7. (五)连接查询(SQL99标准)、子查询、分页查询、联合查询

    一.连接查询(SQL99标准) 1.含义:当要查询的数据来自多张表时要使用连接查询 2.语法: select 查询列表 from 表1 别名 [连接类型] join 表2 别名 on 连接条件 [wh ...

  8. 小书MybatisPlus第4篇-表格分页与下拉分页查询

    本文为mybatis系列文档的第4篇,前三篇请访问下面的网址. 小书MybatisPlus第1篇-整合SpringBoot快速开始增删改查 小书MybatisPlus第2篇-条件构造器的应用及总结 小 ...

  9. MyBatisPlus分页查询,删除操作

    分页查询 分页查询在网页使用十分之多 原始的limit进行分页 pageHelper第三方插件 3. MP内置的分页插件 导入配置 如何使用,官网的代码如下 //分页插件 @Bean public P ...

随机推荐

  1. wordpress非弹窗表单多文件上传插件

    插件名:Drag and Drop Multiple File Upload - Contact Form 7 (ps:如果是弹窗表单,不要使用这个插件Drag and Drop Multiple F ...

  2. 归并排序c语言

    void mergeAdd(int arr[], int left, int mid, int right, int *temp){ int i = left; ; int k = left;//临时 ...

  3. Python中将dict转换为kwargs

    Python中将dict转换为kwargs 我们都知道kwargs是变长kv参数,能否将dict转换成kwargs. 在python调用函数的时候func(**{'type'='event'}),可以 ...

  4. JS与Jquery的事件委托机制

    传送:http://www.ituring.com.cn/article/467 概念: 什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委 ...

  5. SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问 (也就是跨数据库访问出错)

    delphi ado 跨数据库访问 语句如下 ' and db = '帐套1' 报错内容是:SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATE ...

  6. NEERC 1999 Advertisement /// oj22646

    题目大意: 输入k,n :k为每位慢跑者最少应看到的广告牌数 接下来n行 描述第 i 位慢跑者的途径路段 输出需要设立的广告牌数 接下来每行为设立地点 Sample Input 5 101 1020 ...

  7. POJ--Lost Cows (线段树)

    题目:http://poj.org/problem?id=2182    http://acm.hdu.edu.cn/showproblem.php?pid=2711   题意:有N头牛,编号为1-- ...

  8. Codeforces 479【C】div3

    题目链接:http://codeforces.com/problemset/problem/977/C 题意:给你n个数字,输出任意一个数字,这个数字刚好大于等于,序列里面k个数字. 题解:排个序,第 ...

  9. 测试网中用户添加docker yum源

    /etc/yum.repo.d 中新建docker.repo 添加 [docker]name=CentOS-$releasever - Mediabaseurl=ftp://10.191.51.X/d ...

  10. HTTP入门简介

    一.概念:Hyper Text Transfer Protocol 超文本传输协议 传输协议:定义了客户端和服务器端通信时,发送数据的格式 特点: 1.基于TCP/IP的高级协议 2.默认端口号:80 ...