当前位置: 首页 > article >正文

010 mybatis-PageHelper分页插件

文章目录

    • 添加依赖
    • 配置PageHelper
    • 项目中使用PageHelper
    • 注意事项

PageHelper分页插件介绍
https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/en/HowToUse.md
使用方法

添加依赖

<dependency>
	<groupId>com.github.pagehelper</groupId>
	<artifactId>pagehelper</artifactId>
	<version>5.1.6</version>
</dependency>

配置PageHelper

Mybatis全局配置文件

<plugins>
	<plugin interceptor="com.github.pagehelper.PageInterceptor">
		<!-- config params as the following -->
		<property name="helperDialect" value="mysql"/>
	</plugin>
</plugins>

spring配置文件

<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
	<!-- other configuration -->
	<property name="plugins">
		<array>
			<bean class="com.github.pagehelper.PageInterceptor">
				<property name="properties">
					<!-- config params as the following -->
					<value>
						helperDialect=mysql
					</value>
				</property>
			</bean>
		</array>
	</property>
</bean>

项目中使用PageHelper

//获取第1页,10条内容,默认查询总数count
PageHelper.startPage(1, 10);
List<Country> list = countryMapper.selectAll();
//用PageInfo对结果进行包装
PageInfo page = new PageInfo(list);
//测试PageInfo全部属性
//PageInfo包含了非常全面的分页属性
assertEquals(1, page.getPageNum());
assertEquals(10, page.getPageSize());
assertEquals(1, page.getStartRow());
assertEquals(10, page.getEndRow());
assertEquals(183, page.getTotal());
assertEquals(19, page.getPages());
assertEquals(1, page.getFirstPage());
assertEquals(8, page.getLastPage());
assertEquals(true, page.isFirstPage());
assertEquals(false, page.isLastPage());
assertEquals(false, page.isHasPreviousPage());
assertEquals(true, page.isHasNextPage());

注意事项

  1. 需要分页的查询语句,必须是处于PageHelper.startPage(1, 10);后面的第一条语句。
  2. 如果查询语句是使用resultMap进行的嵌套结果映射,则无法使用PageHelper进行分页。

http://www.kler.cn/a/522195.html

相关文章:

  • 【C语言练习题】整数和实数在计算机中的二进制表示
  • 编译dpdk19.08.2中example时一系列报错解决
  • c++:vector
  • Qt Ribbon使用实例
  • 基于特征工程与转换方法的LightGBM资产预测研究
  • postgres基准测试工具pgbench如何使用自定义的表结构和自定义sql
  • 精通PCIe技术:协议解析与UVM验证实战
  • 大数据学习之SCALA分布式语言三
  • POWER SCHEDULER:一种与批次大小和token数量无关的学习率调度器
  • Mac Electron 应用签名(signature)和公证(notarization)
  • Mybatis初步了解
  • RU 19.26安装(手工安装各个补丁)
  • wxPython中wx.ListCtrl用法(四)
  • 66-《虞美人》
  • 从ai产品推荐到利用cursor快速掌握一个开源项目再到langchain手搓一个Text2Sql agent
  • 4.scala默认参数值
  • YOLO目标检测4
  • C#面试常考随笔6:ArrayList和 List的主要区别?
  • deepseek R1的确不错,特别是深度思考模式
  • excel如何查找一个表的数据在另外一个表是否存在
  • clean code阅读笔记——如何命名?
  • Nacos深度解析:构建高效微服务架构的利器
  • Python3 【高阶函数】项目实战:5 个学习案例
  • linux网络 | TCP可靠性策略之连接管理、滑动窗口、拥塞控制
  • CSS Fonts(字体)
  • Yolo11 + OCR 营业执照识别+信息抽取(预期后续改用其他ocr更简单,推理预计使用onnxruntim加速,分c++和python两种方式部署)