MP实战系列(十四)之分页使用

摘要:
分页及其搜索在web开发中非常常见。MyBatisPlus已经使用了五个多月,开发效率确实提高了很多。当然,如果要获取当前页面或数据总数,可以使用该对象。例如,第页。getTotal();page.getCurrent();关于MyBatisPlus包装方法的解释,请参考我的博客:MP实用系列包装方法的说明(5),MP实用系列的包装方法的介绍,MP实用系列包装方法说明(2)。如果您对以上内容有任何疑问,可以留言解释疑问,我会尽力详细解答。

MyBatis Plus的分页,有插件式的,也有其自带了,插件需要配置,说麻烦也不是特别麻烦,不过觉得现有的MyBatis Plus足以解决,就懒得配置插件了。

MyBatis Plus的资料不算是太多,与MyBatis相比。所以将可能用到的记录下来。分页及其搜索对于web开发是非常常用的。

使用MyBatis Plus已经有5个多月,开发的效率,的确提高不少。虽然前面有MyBatis的逆向工程,可以生成单表的增删改查,但是呢?看起来繁杂,用起来不爽,因为还得看一大堆sql和一些queryvo,看起来就不爽,何况用呢。

MyBatis Plus Github开源地址如下:https://github.com/baomidou/mybatis-plus

至于maven依赖,前面实战系列贴的都有,这里不再重复贴。

来个单元测试示例:

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.baomidou.mybatisplus.plugins.Page;
import com.entity.SysDictData;
import com.service.SysDictDataService;




@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring/spring.xml")
public class JunitTest {


    
    @Autowired
    private SysDictDataService sysDictDataService;
    
    @Test
    public void testName() throws Exception { 

    List<SysDictData> list = sysDictDataService.selectList(null);
    int tatalCount = sysDictDataService.selectCount(null);
    Page<SysDictData> page =new Page<SysDictData>();
    page.setRecords(list);
    page.setCurrent(1);
    page.setLimit(1);
    page.setSize(10);
    page.setTotal(tatalCount);
    System.out.println(page.getRecords())
}   

selectList(null)这个方法前面的关于封装方法详解有过说明,这里不再赘述。

上面的page.setRecords()、 page.setCurrent()、 page.setLimit()、page.setSize()、 page.setTotal()等等方法,相信有一定编程编程经验或者英语水平一般的人都能看出来是什么意思。

不过这里还是要稍微解释下:

Records:相当于将集合数据放入其中,作为集合数据装载容器

Current:当前页

Limit()相当于 select id,user_name,password from `user` limit 0,5 从索引几开始

Size():每页显示多少条数据

Total():数据总数

至于最后的page.getRecords()就是获取对应的数据。当然如果你要获取当前页或者数据总数可以对象.方法

例如:

page.getTotal(); page.getCurrent();

关于MyBatis Plus封装方法讲解可以参考我的如下博客:

MP实战系列(五)之封装方法讲解

MP实战系列(十一)之封装方法详解(续一)

MP实战系列(十二)之封装方法详解(续二)

如果对上面的有疑惑,可以留言,说明疑惑,我必尽力详细解答。

当然了,如果你只是使用MyBatis而不是MyBatis,分页可以使用MyBatis的插件,当然了,如果觉得插件配置麻烦了话,可以参考我的这篇文章实现简单分页:

layui前端框架之分页

尽管你不是使用layui,但里面的代码你可以参考。

免责声明:文章转载自《MP实战系列(十四)之分页使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇文件重命名(递归)元素偏移量 offset 系列下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用分页助手pageHelper,方便快捷

传统方法,分页的工具类PageBean ,把数据都封装起来, 使用PageHelper 1  搭建环境,引入com.github.pagehelper 2   第一:在DAO配置文件中配置       引入sqlMapConfig.xml 3  创建PageInfo对象'   ...

基于ServiceStack.OrmLite框架 代码性能、开发效率皆第一 没有之一

基于ServiceStack.OrmLite框架 代码性能、开发效率皆第一 没有之一 1.此框架方便简洁,便于学习研究。除了基本的增删改查外,还有分页,兼容分页的多表查询,同一业务处理时多次数据库操作仅需要打开一次数据库,反射对象映射赋值,分页返回集合的json封装函数,自定义对象,NLOG日志记录,前端H+框架,sweetalert、Sortable、l...

【无限滚动加载数据】—infinite-scroll插件的使用

网上对于infinite-scroll插件使用的例子不多。但由于它的出现,鼓吹了瀑布流形式的页面展示方式,所以不得不了解了解这种新的分页方式。 官网上有对infinite-scroll的详细描述,但一般人即使看未必看得懂,看得懂未必就调试成功。所以借今晚有点时间,把跑通的例子供大家借鉴。 一.无限滚动概念 首先,它是基于Jquery的,另外还要明白无限...

table表单打印添加页码和自动分页

今天接到一个需求,就是打印页面需要自动分页,并且添加分页页码。 查找了很多插件或者文档都没有好的处理方法,所以准备自己写一个函数来处理。 页面样式: 要求:第一个页面添加总体的大表单,第二个页面添加小表单。并且自动分页,添加页码。table列表中如果有note字段的话,需要另起一行添加备注,如果没有则隐藏,字数最多为200字。 先说思路: 1. 可以将页...

数据分页技术(学习笔记)

    最近学习了WebCast中的数据分页技术,现把相关知识点归纳如下,便于以后总结复习: 一、 数据分页概述: 1.通常在Web页面,在显示数据量比较大时,无法在一个页面上显示所有的数据。 2.在某些特定场景下,并不需要返回所有满足条件的数据。 3.从数据的角度看,需要返回指定范围内的数据。 二、分页技术 1.数据层技术: 在数据库查询时,只查询特定页...

vue移动端预览pdf

vue-pdf移动端缺点: 1、安卓预览红头文件会出现缺字少字的问题,ios正常 2、预览过大文件,分页形式的好用,不分页的文件过大可能打不开 3、分页形式放大缩小只能通过按钮改变css放大,不分页无法放大 解决vue-pdf移动端问题使用pdfh5预览pfd: 1.安装 npm install pdfh5 2.使用 <template>...