PageHelper是一个运行在MyBatis基础之上的API库,用于简单地实现对表中数据进行分页查询。

1、数据

CREATE TABLE `student` (`id` char(36) PRIMARY KEY COMMENT '主键',`name` varchar(18) NOT NULL COMMENT '姓名',`sex` tinyint(1) DEFAULT NULL COMMENT '性别:1-男,2-女',`mobile` char(11) NOT NULL COMMENT '手机号',`address` varchar(150) NOT NULL COMMENT '家庭地址'
);insert into `student`(`id`,`name`,`sex`,`mobile`,`address`) values ('059ba7c5-34d4-48bf-9e76-13f52a95e229','萧婷',2,'13031070239','新疆自治区乌鲁木齐市沙依巴克区雅玛里克山街道新疆三建家属院'),('0cc9987d-1c75-415c-8c37-e5000b202286','韦傲然',2,'17194017474','辽宁省沈阳市皇姑区蓝天家园'),('2b910dda-bc1e-4a73-949f-9b482f3c09f3','萧盈兰',2,'18675302555','山西省太原市万柏林区公元时代城'),('2df4e4ba-3e90-412f-9132-ca33c1daaecd','赵程缨',2,'13267119333','湖北省武汉市汉江区万松小区'),('2e5049d8-ffe4-4075-aff6-a3a2c593dc89','潘忻妍',2,'15838168295','海南省海口市龙华区碧桂园中央首府'),('5dec27e2-9d1b-40b7-a19b-e9d8436d9c78','汤丞昱',1,'15201363549','河北省石家庄市裕华区安苑小区'),('5e32f933-7b23-4986-a72e-3c0f83bffd0f','李明',1,'18897899098','内蒙古自治区呼和浩特市回民区万嘉康城');

2、依赖

<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.6.4</version>
</dependency>
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.30</version>
</dependency>
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.7</version>
</dependency>
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.2.0</version>
</dependency>

3、log4j.properties日志文件

log4j.rootLogger=debug,console,file#输出到控制台
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n#输出到文件
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=D:\\log4j.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n#SQL语句
log4j.logger.com.mybatis=DEBUG
log4j.logger.com.mybatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.mybatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

4、mybatis-config.xml全局配置文件

<?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><!-- 添加mybatis分页插件 --><plugins><!-- com.github.pagehelper为PageHelper类所在包名 --><plugin interceptor="com.github.pagehelper.PageInterceptor"><!-- 如果pageNum超出合法范围,是否返回正确结果 --><property name="reasonable" value="true" /><!-- 如果pageSize传入0,是否返回所有数据(不分页) --><property name="pageSizeZero" value="true" /></plugin></plugins><environments default="development"><!-- 配置数据库连接信息 --><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver" /><property name="url"value="jdbc:mysql://127.0.0.1:3306/test?useSSL=false" /><property name="username" value="root" /><property name="password" value="root" /></dataSource></environment></environments><!-- 注册Mapper xml文件 --><mappers><mapper resource="./sql/StudentMapper.xml" /></mappers>
</configuration>

5、Student类

package com.soft.vo;public class Student {private String id;private String name;private int sex;private String mobile;private String address;...省略getter/setter...@Overridepublic String toString() {return "id=" + id + ", name=" + name + ", sex=" + sex + ", mobile=" + mobile + ", address=" + address;}
}

6、IStudentDao接口

package com.soft.student;import com.github.pagehelper.Page;
import com.soft.vo.Student;public interface IStudentDao {Page<Student> select();
}

7、StudentMapper.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.soft.student.IStudentDao"><select id="select" resultType="com.soft.vo.Student">select * from student</select>
</mapper>

8、测试

package com.soft.test;import java.io.IOException;
import java.io.InputStream;
import java.util.List;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.soft.student.IStudentDao;
import com.soft.vo.Student;public class Test {public static void main(String[] args) throws IOException {InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession openSession = sqlSessionFactory.openSession();try {IStudentDao studentDao = openSession.getMapper(IStudentDao.class);// 只有紧跟在PageHelper.startPage方法后面的第一个查询会被分页int pageNum=2;int pageSize=5;PageHelper.startPage(pageNum, pageSize);Page<Student> pagination = studentDao.select();// 获取总记录数pagination.getTotal();// 获取总页数pagination.getPages();// 获取页面大小pagination.getPageSize();// 获取当前页码pagination.getPageNum();List<Student> list = pagination.getResult();for (Student student : list) {System.out.println(student);}} finally {//释放资源openSession.close();}}
}

MyBatis+PageHelper实现分页相关推荐

  1. mybatis pagehelper实现分页

    jar包的版本一定要对应,不然会出现一系列的问题 下载jar包 <properties>           <!-- spring版本号 -->           < ...

  2. mybatis 分页查询_MyBatis之分页查询:MyBatis PageHelper

    MyBatis,作为目前流行的ORM框架,大大方便了日常开发.而对于分页查询,虽然可以通过SQL的limit语句实现,但是比较繁琐.而MyBatis PageHelper的出现,则解决了这一痛点.这里 ...

  3. Springboot Mybatis使用PageHelper实现分页查询

    以下介绍实战中数据库框架使用的是mybatis,对整合mybatis此处不做介绍. 使用pageHelper实现分页查询其实非常简单,共两步: 一.导入依赖: pom.xml添加依赖: <!-- ...

  4. Mybatis下collections使用pageHelper进行分页

    pageHelper在对mybatis一对多分页时造成查询总页数结果不对的情况. 可以做出如下修改: service层: public CommonResult worksList(String us ...

  5. Springboot+Mybatis+PageHelper 分页、排序

    Springboot+Mybatis+PageHelper 分页.排序 升序 asc.降序 desc <!-- 继承 spring boot 父包--><parent>< ...

  6. MyBatis使用PageHelper排序分页

    文章目录 MyBatis使用PageHelper排序分页 前言 排序分页 使用PageHelper排序分页 添加PageHelper Spring Boot依赖 新增一个列表查询的方法 使用PageH ...

  7. Springboot Mybatis使用pageHelper实现分页查询

    以下介绍实战中数据库框架使用的是mybatis,对整合mybatis此处不做介绍. 使用pageHelper实现分页查询其实非常简单,共两步: 一.导入依赖: 二.添加配置: 那么开始, 第一步: p ...

  8. springboot+mybatis 利用PageHelper插件分页,结果第二页的返回分页信息还是和第一页一样。

    正常使用PageHelper来分页时可以的,但是如果在查询list后做了非常多的处理,即解包在装包操作.可能最后返回时分页的数据查询的对,但是分页信息就有问题了.有的甚至分页功能都不行.这里为避免几个 ...

  9. springboot使用PageHelper实现分页

    使用mybatis最头疼的就是写分页,需要先写一个查询count的select语句,在写一个真正的limit查询语句,所以花费很长的时间,这里咋们可以使用PageHelper实现分页. 1.首先引入p ...

最新文章

  1. org.quartz.CronTrigger cannot be cast to org.springframework.scheduling.quartz.CronTriggerBean
  2. 阿里云边缘云荣获“分布式云创新奖”与“先进边缘云架构奖”
  3. php空间xpyun_无限流量免费 PHP 空间 – FreeWebHostingArea
  4. 张凯院 矩阵论学习_有限群表示论(0): 前言
  5. python基础30个常用代码-30 个Python代码实现的常用功能,精心整理版
  6. linux安装oracle11g步骤_图解 Debian 10(Buster)安装步骤 | Linux 中国
  7. python总结与思考_Python小结 – pip 升级包总结
  8. Thor HTTP 抓包嗅探分析接口调试网络协议
  9. vscode 初始化HTML结构
  10. python_csv文件写入
  11. kvm显示器怎么切换服务器,kvm切换器一套键盘鼠标显示器的热键切换方法教程
  12. “鸡血驱动”为CS:GO、LOL注入“强心剂”!英特尔锐炫A750显卡实测
  13. Merged region A1 must contain 2 or more cells
  14. 淘宝小程序 表单组件checkbox的默认样式修改
  15. 电脑开机密码忘记,如何修改电脑密码?
  16. 猜对今年ICO大溃败与BCH算力战,小扎铁哥们能猜对明年的房地产区块链吗?
  17. java内存模型浅析_浅谈java内存模型
  18. 江苏大学毕业设计TEX排版(二)
  19. [Vue] 模板语法
  20. 关于win7下的如何禁止IP更改

热门文章

  1. 关系抽取Casrel实现(Pytorch版)
  2. 9个免费开源的bug追踪软件
  3. 10大全球设计师SNS社区网站
  4. MySQL 高可用之MMM
  5. 计算机信息管理面试自我介绍,信息管理专业的面试自我介绍
  6. android动态请求权限
  7. 漏洞复现——shiro反序列化
  8. BSCI验厂考勤资料工资作假不一致解决方案
  9. 餐饮管理系统(JavaWeb+SSH+MySQL)
  10. Amber中的NMR restraint中的一些参数的设置的意义