首页 > 其他分享 >MyBatis_10(分页插件)

MyBatis_10(分页插件)

时间:2023-03-03 11:55:12浏览次数:51  
标签:qq 10 插件 分页 did MyBatis com email

主题:分页插件

一、分页插件使用步骤:

  • 1-添加依赖

<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
<dependency>
	<groupId>com.github.pagehelper</groupId>
	<artifactId>pagehelper</artifactId>
	<version>5.2.0</version>
</dependency>

  • 2-配置分页插件

    • 在MyBatis的核心配置文件(mybatis-config.xml)中配置插件

//分页插件

<plugins>
	<!--设置分页插件-->
	<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>

二、分页插件的使用

2.1-开启分页功能

  • 在查询功能之前使用PageHelper.startPage(int pageNum, int pageSize)开启分页功能

    • pageNum:当前页的页码

    • pageSize:每页显示的条数

@Test
public void testPageHelper() throws IOException {
	InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
	SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
	SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
	SqlSession sqlSession = sqlSessionFactory.openSession(true);
	EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
	//访问第一页,每页四条数据
	PageHelper.startPage(1,4);
	List<Emp> emps = mapper.selectByExample(null);
	emps.forEach(System.out::println);
}

2.2-分页相关数据:

  • 方法一:直接输出:

@Test
public void testPageHelper() throws IOException {
	InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
	SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
	SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
	SqlSession sqlSession = sqlSessionFactory.openSession(true);
	EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
	//访问第一页,每页四条数据
	Page<Object> page = PageHelper.startPage(1, 4);
	List<Emp> emps = mapper.selectByExample(null);
	//在查询到List集合后,打印分页数据
	System.out.println(page);
}

//分页相关数据:

Page{count=true, pageNum=1, pageSize=4, startRow=0, endRow=4, total=8, pages=2, reasonable=false, pageSizeZero=false}[Emp{eid=1, empName='admin', age=22, sex='男', email='[email protected]', did=3}, Emp{eid=2, empName='admin2', age=22, sex='男', email='[email protected]', did=3}, Emp{eid=3, empName='王五', age=12, sex='女', email='[email protected]', did=3}, Emp{eid=4, empName='赵六', age=32, sex='男', email='[email protected]', did=1}]
  • 方法二使用PageInfo

    • 在查询获取list集合之后,使用PageInfo pageInfo = new PageInfo<>(List list, intnavigatePages)获取分页相关数据

      • list:分页之后的数据

@Test
public void testPageHelper() throws IOException {
	InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
	SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
	SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
	SqlSession sqlSession = sqlSessionFactory.openSession(true);
	EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
	PageHelper.startPage(1, 4);
	List<Emp> emps = mapper.selectByExample(null);
	PageInfo<Emp> page = new PageInfo<>(emps,5);
	System.out.println(page);
}
  • 分页相关数据:

//分页相关数据:

PageInfo{
pageNum=1, pageSize=4, size=4, startRow=1, endRow=4, total=8, pages=2, 
list=Page{count=true, pageNum=1, pageSize=4, startRow=0, endRow=4, total=8, pages=2, reasonable=false, pageSizeZero=false}[Emp{eid=1, empName='admin', age=22, sex='男', email='[email protected]', did=3}, Emp{eid=2, empName='admin2', age=22, sex='男', email='[email protected]', did=3}, Emp{eid=3, empName='王五', age=12, sex='女', email='[email protected]', did=3}, Emp{eid=4, empName='赵六', age=32, sex='男', email='[email protected]', did=1}], 
prePage=0, nextPage=2, isFirstPage=true, isLastPage=false, hasPreviousPage=false, hasNextPage=true, navigatePages=5, navigateFirstPage=1, navigateLastPage=2, navigatepageNums=[1, 2]}

//其中list中的数据等同于方法一中直接输出的page数据

三、常用数据:

  • pageNum:当前页的页码

  • pageSize:每页显示的条数

  • size:当前页显示的真实条数

  • total:总记录数

  • pages:总页数

  • prePage:上一页的页码

  • nextPage:下一页的页码

  • isFirstPage/isLastPage:是否为第一页/最后一页

  • hasPreviousPage/hasNextPage:是否存在上一页/下一页

标签:qq,10,插件,分页,did,MyBatis,com,email
From: https://www.cnblogs.com/chen-zhou1027/p/17175084.html

相关文章

  • Mybatis动态SQL语句大全
    读完这篇文章里你能收获到Mybatis动态SQL语句大全Mybatis中如何定义变量Mybatis中如何提取公共的SQL片段1.If语句需求:根据作者名字和博客名字来查询博客!如果作......
  • L10_用日语询问某个东西多少钱
    概述动画会话A:たくさんありますね。有好多啊。B:すごいでしょう。これはサラサラヘア。これはツヤが出るティプ很棒吧。这款是让头发顺滑。这款是让头发出......
  • Win10安装WSL
    1.安装Ubuntu(WSL)搜索:打开或关闭Windows勾选重启微软商店搜索安装Ubuntu问题处理Error:0x800701bcWSL2启用虚拟化更新wsl下载:https://wslstor......
  • 10_Spring_CGLIB动态代理
     proxy动态代理面向接口1必须有接口和实现类 2增强接口中定义的方法3只能读取接口中方法的上注解cglib动态代理模式面向父类 packagecom.msb.testCglib;importo......
  • 10_Spring_CGLIB动态代理
     proxy动态代理面向接口1必须有接口和实现类 2增强接口中定义的方法3只能读取接口中方法的上注解cglib动态代理模式面向父类 packagecom.msb.testCglib;importo......
  • msvcr100.dll丢失是什么意思-msvcr100.dll丢失解决方法
    丢失msvcr100.dll或者损坏会导致电脑很多软件跟游戏都无法正常打开运行。还有不少小伙伴不知道怎么修复,小编今天就把修复教程分享给大家;最简单的修复方法电脑开机打开任意一......
  • mybatis处理一对多的映射关系
    实体类packageorg.example.entity;importjava.util.List;publicclassDept{privateIntegerdeptId;privateStringdeptName;privateList<Emp>......
  • [转]Windows10下CLion配置说明
    Windows10下CLion配置说明CLion是C/C++的IDE,可以配置多种编译环境,本文以配置MinGW编译环境为例。安装CLion的安装可直接到官网下载ZIP,文件解压后直接运行即可。我在......
  • MyBatis_09(逆向工程)
    MyBatis的逆向工程正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成......
  • mybatis懒加载
    mybatis懒加载全局配置<settings><settingname="mapUnderscoreToCamelCase"value="true"/><!--开启懒加载(开启延迟加载)--><settingn......