1.导入PageHelper依赖

<!-- MyBatis 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.0.0</version>
</dependency>

2.配置PageHelper插件

注意:om.github.pagehelper.PageHelper这个接口,自4.0.0版本以后就不再使用了,转而实现这个接口:org.apache.ibatis.plugin.Interceptor。由于我使用的是4.0.0版本,所以还是用的PageHelper。

方式一:在mybatis的主配置文件中配置PageHelper插件

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration>
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql"/>
<property name="offsetAsPageNum" value="true"/>
<property name="rowBoundsWithCount" value="true"/>
<property name="pageSizeZero" value="true"/>
<property name="reasonable" value="true"/>
<property name="params" value="pageNum=start;pageSize=limit;"/>
<property name="supportMethodsArguments" value="true"/>
<property name="returnPageInfo" value="check"/>
</plugin>
</plugins>
</configuration>

属性说明:

  dialect(常用):指定当前使用的数据库 。pagehelper版本4.0.0以后可以不设置此属性。

  offsetAsPageNum:设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用,默认为false。

  rowBoundsWithCount:设置为true时,使用RowBounds分页会进行count查询,默认为false。

  pageSizeZero:设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果(相当于没有执行分页查询,但是返回结果仍然是Page类型)。

  reasonable(常用):分页参数合理化,设置为true时,如果pageNum<1会查询第一页,如果pageNum>最大页数时会查询最后一页;禁用合理化时,如果pageNum<1或pageNum>最大页数时会返回空数据。默认为false禁用(3.3.0之后版本可用)。

  params:增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值。可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置映射的用默认值。不理解该含义的前提下,不要随便复制该配置 (3.5.0版本可用,为了支持startPage(Object params)方法)      

  supportMethodsArguments:支持通过Mapper接口参数来传递分页参数。

  returnPageInfo:always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page。

记得在spring的配置文件的sqlSessionFactory中指定mybatis全局配置文件位置。

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--指定mybatis全局配置文件位置-->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<!--指定mapper.xml配置文件路径-->
<property name="mapperLocations" value="classpath:mybatis/mapper/*Mapper.xml"/>
<!--装配数据源-->
<property name="dataSource" ref="dataSource"/>
</bean>

方式二:直接在spring主配置文件中配置PageHelper插件(没有mybatis的主配置文件使用此方式)

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--指定mybatis全局配置文件位置-->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<!--指定mapper.xml配置文件路径-->
<property name="mapperLocations" value="classpath:mybatis/mapper/*Mapper.xml"/>
<!--装配数据源-->
<property name="dataSource" ref="dataSource"/>
<!--配置插件-->
<property name="plugins">
<array>
<!--配置PageHelper插件-->
<bean class="com.github.pagehelper.PageHelper">
<property name="properties">
<props>
<!--配置数据库方言,告诉 PageHelper当前使用的数据库-->
<prop key="dialect">mysql</prop>
<!--配置页码的合理化修正,在1~总页数之间修正页码-->
<!--合理化修正-->
<prop key="reasonable">true</prop>
</props>
</property>
</bean>
</array>
</property>
</bean>

3.使用

在执行查询之前调用PageHelper的静态方法:PageHelper.startPage(pageNum,pageSize)即可,pagehelper自动对PageHelper.startPage 方法下的第一个sql 查询进行分页。

此方法两个参数:

pageNum:当前页码

pageSize:每页显示的条数

代码举例:

    @Test
public void test2(){
PageHelper.startPage(2,10);
List<Admin> list = adminMapper.selectAdminByKeyword("");
for (Admin admin : list) {
System.out.println(admin);
}
}

输出:

PageHelper--Mybatis分页插件(ssm框架下的使用)的更多相关文章

  1. Java SSM框架之MyBatis3(三)Mybatis分页插件PageHelper

    引言 对于使用Mybatis时,最头痛的就是写分页,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,会发现真不想花双倍的时间写count和select ...

  2. MyBatis学习总结(17)——Mybatis分页插件PageHelper

    如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件. 分页插件支持任何复杂的单表.多表分页,部分特殊情况请看重要提示. 想要使用分页插件?请看如何使用分页插件. 物理分页 该 ...

  3. Mybatis学习---Mybatis分页插件 - PageHelper

    1. Mybatis分页插件 - PageHelper说明 如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件. 该插件目前支持Oracle,Mysql,MariaDB,S ...

  4. Mybatis分页插件PageHelper的学习与使用

    目录 中文教程 PageHelper使用 后端程序员都知道,在Web系统中,分页是一种常见的功能,我之前写的分页方法都比较麻烦,移植性也不高,这就很不乐观了.作为一个积极开朗的程序员,怎么能不去了解P ...

  5. Mybatis分页插件PageHelper正确的用法(网上有2篇不够科学的文章)

    今天下午在Mybatis项目中.实现分页.由于我是后加入项目中的,Leader用的是PageHelper这个组件.可是我在实际使用的过程中遇到了2个大问题. 1.p=2#comments" ...

  6. Mybatis分页插件PageHelper正确的使用方法(网上有2篇不够科学的文章)

    今天下午在Mybatis项目中,实现分页.因为我是后加入项目中的,Leader用的是PageHelper这个组件,但是我在实际使用的过程中遇到了2个大问题. 1.http://www.oschina. ...

  7. Mybatis分页插件PageHelper的配置和使用方法

     Mybatis分页插件PageHelper的配置和使用方法 前言 在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页. 前端分 ...

  8. 基于Mybatis分页插件PageHelper

    基于Mybatis分页插件PageHelper 1.分页插件使用 1.POM依赖 PageHelper的依赖如下.需要新的版本可以去maven上自行选择 <!-- PageHelper 插件分页 ...

  9. 关于在SSM框架下使用PageHelper

    首先,如果各位在这块配置和代码有什么问题欢迎说出来,我也会尽自己最大的能力帮大家解答 这些代码我都是写在一个小项目里的,项目的github地址为:https://github.com/Albert-B ...

随机推荐

  1. POJ1258最小生成树简单题

    题意:       给你个图,让你求一颗最小生成树. 思路:      裸题,克鲁斯卡尔或者普利姆都行. #include<stdio.h> #include<algorithm&g ...

  2. pandas(10):数据增删改

    目录 一.对索引进行操作 1 操作索引值df.rename() 二.指定数据替换.修改df.replace() 三.特殊值--缺失值处理 四.新增行列 1 直接赋值添加新列 2 df.assign() ...

  3. SpringBoot 项目 部署 war方式

    SpringBoot部署 –war方式 步骤1部署方式 Springboot 和我们之前学习的web 应用程序不一样,其本质上是一个 Java 应用程序,那么又如何部署呢? 通常来说,Springbo ...

  4. 云服务器Apache+MySQL(远程连接)+PHP等环境安装2021.5.9号配置

    云服务器Apache+MySQL(远程连接)+PHP等环境安装2021.5.9号配置 Linux版本:centos8.2 (其他版本提供适配) 安装方式:yum 今天使用centos8系统搭建了下云主 ...

  5. 29.Map,可变参数

    1.Map集合 1.1Map集合概述和特点[理解] 单列集合一次存一个元素 双列集合一次存两个元素 键:不能重复的        值:可以重复的 Map集合概述 interface Map<K, ...

  6. localectl set-locale LANG=en_US.UTF-8

    localectl set-locale LANG=en_US.UTF-8    

  7. Docker镜像的仓库及底层依赖的核心技术(3)

    一.docker镜像的仓库 仓库分为公共仓库和私有仓库 DockerHub的官方仓库:https://hub.docker.com DockerPool社区仓库:https://dl.dockerpo ...

  8. CSS 重置技术

    元素默认样式显示问题 每个浏览器对不同元素都有自己的默认样式.Google Chrome 渲染正文标题.段落.列表等,与 IE 浏览器可能都有所不同.这就导致同一个页面元素在不同的浏览器中显示效果不一 ...

  9. SpringBoot额外依赖

    spring-boot-configuration-processor <dependency> <groupId>org.springframework.boot</g ...

  10. [Windows] 将中文输入法热键改回Ctrl+Space

    造冰箱的大熊猫@cnblogs 2021/6/6 之前因为Code Composer Studio的缘故将Windows XP上的中英文切换热键从Ctrl+Space改为了Ctrl+Shift+Spa ...