PageHelper--Mybatis分页插件(ssm框架下的使用)
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框架下的使用)的更多相关文章
- Java SSM框架之MyBatis3(三)Mybatis分页插件PageHelper
引言 对于使用Mybatis时,最头痛的就是写分页,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,会发现真不想花双倍的时间写count和select ...
- MyBatis学习总结(17)——Mybatis分页插件PageHelper
如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件. 分页插件支持任何复杂的单表.多表分页,部分特殊情况请看重要提示. 想要使用分页插件?请看如何使用分页插件. 物理分页 该 ...
- Mybatis学习---Mybatis分页插件 - PageHelper
1. Mybatis分页插件 - PageHelper说明 如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件. 该插件目前支持Oracle,Mysql,MariaDB,S ...
- Mybatis分页插件PageHelper的学习与使用
目录 中文教程 PageHelper使用 后端程序员都知道,在Web系统中,分页是一种常见的功能,我之前写的分页方法都比较麻烦,移植性也不高,这就很不乐观了.作为一个积极开朗的程序员,怎么能不去了解P ...
- Mybatis分页插件PageHelper正确的用法(网上有2篇不够科学的文章)
今天下午在Mybatis项目中.实现分页.由于我是后加入项目中的,Leader用的是PageHelper这个组件.可是我在实际使用的过程中遇到了2个大问题. 1.p=2#comments" ...
- Mybatis分页插件PageHelper正确的使用方法(网上有2篇不够科学的文章)
今天下午在Mybatis项目中,实现分页.因为我是后加入项目中的,Leader用的是PageHelper这个组件,但是我在实际使用的过程中遇到了2个大问题. 1.http://www.oschina. ...
- Mybatis分页插件PageHelper的配置和使用方法
Mybatis分页插件PageHelper的配置和使用方法 前言 在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页. 前端分 ...
- 基于Mybatis分页插件PageHelper
基于Mybatis分页插件PageHelper 1.分页插件使用 1.POM依赖 PageHelper的依赖如下.需要新的版本可以去maven上自行选择 <!-- PageHelper 插件分页 ...
- 关于在SSM框架下使用PageHelper
首先,如果各位在这块配置和代码有什么问题欢迎说出来,我也会尽自己最大的能力帮大家解答 这些代码我都是写在一个小项目里的,项目的github地址为:https://github.com/Albert-B ...
随机推荐
- poj2418map或者字典树
题意: 给你一些串,然后求出每个串出现的概率. 思路: 简单题目,做法也很多,我用字典树做了下,然后又用map做了下,其实这个题目我感觉直接排序一遍之后线性输出应该是最简单最快的( ...
- Portswigger web security academy:OAth authentication vulnerable
Portswigger web security academy:OAth authentication vulnerable 目录 Portswigger web security academy: ...
- Spring的配置文件 (SSM maven项目)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- windows下使用dos命令手工与ntp服务器同步系统时间
管理员模式的命令窗口 net stop w32time &w32tm /unregister &w32tm /register &net start w32time & ...
- MySQL库表设计小技巧
前言: 在我们项目开发中,数据库及表的设计可以说是非常重要,我遇到过很多库表设计比较杂乱的项目,像表名.字段名命名混乱.字段类型设计混乱等等,此类数据库后续极难维护与拓展.我一直相信只有优秀的库表设计 ...
- API网关才是大势所趋?SpringCloud Gateway保姆级入门教程
什么是微服务网关 SpringCloud Gateway是Spring全家桶中一个比较新的项目,Spring社区是这么介绍它的: 该项目借助Spring WebFlux的能力,打造了一个API网关.旨 ...
- [刷题] PTA 02-线性结构4 Pop Sequence
模拟栈进出 方法一: 1 #include<stdio.h> 2 #define MAXSIZE 1000 3 4 typedef struct{ 5 int data[MAXSIZE]; ...
- XSF /如何使用xrandr
XSF /如何使用xrandr 西里尔·布鲁莱布瓦<kibi@debian.org> 目录 入门 什么是xrandr? xrandr是与XRandR 扩展名交互的命令行工具[请参阅x.or ...
- MySQL报错ERROR 1436 (HY000): Thread stack overrun:
今天搭私服的时候,卡在角色创建画面,日志报错如上. 这是MySQL报错ERROR 1436 (HY000): Thread stack overrun: 修改方法 vim /etc/my.cnf ...
- WordPress的config.php不小心删掉
[原文件] <?php /** * WordPress基础配置文件. * * 这个文件被安装程序用于自动生成wp-config.php配置文件, * 您可以不使用网站,您需要手动复制这个文件, ...