【愚公系列】2023年05月 Java教学课程 117-Mybatis(分页插件)

举报
愚公搬代码 发表于 2023/05/31 22:26:15 2023/05/31
【摘要】 一、分页插件1.分页插件介绍MyBatis的分页插件是一个用于处理分页查询的插件,它可以在SQL执行之前拦截SQL语句并添加分页参数,从而实现分页查询。该插件提供了以下几个主要功能:• 分页查询:支持按照指定的页数和每页条数进行分页查询。• 总条数查询:支持查询符合条件的总条数。• 自动分页:支持自动根据查询结果的总条数进行分页。• 支持多种数据库:支持MySQL、Oracle、SQL Se...

一、分页插件

1.分页插件介绍

MyBatis的分页插件是一个用于处理分页查询的插件,它可以在SQL执行之前拦截SQL语句并添加分页参数,从而实现分页查询。

该插件提供了以下几个主要功能:

• 分页查询:支持按照指定的页数和每页条数进行分页查询。

• 总条数查询:支持查询符合条件的总条数。

• 自动分页:支持自动根据查询结果的总条数进行分页。

• 支持多种数据库:支持MySQL、Oracle、SQL Server等多种数据库。

MyBatis的分页插件可以大大简化分页查询的实现过程,提高开发效率。

2.分页插件的使用

MyBatis可以使用第三方的插件来对功能进行扩展,分页助手PageHelper是将分页的复杂操作进行封装,使用简单的方式即可获得分页的相关数据

开发步骤:

①导入与PageHelper的jar包



②在mybatis核心配置文件中配置PageHelper插件

<?xml version="1.0" encoding="UTF-8" ?>
<!--MyBatis的DTD约束-->
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

<!--configuration 核心根标签-->
<configuration>

<!--引入数据库连接的配置文件-->
<properties resource="jdbc.properties"/>

<!--配置LOG4J-->
<settings>
<setting name="logImpl" value="log4j"/>
</settings>

<!--起别名-->
<typeAliases>
<typeAlias type="com.itheima.bean.Student" alias="student"/>
<!--<package name="com.itheima.bean"/>-->
</typeAliases>

<!--集成分页助手插件-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>

<!--environments配置数据库环境,环境可以有多个。default属性指定使用的是哪个-->
<environments default="mysql">
<!--environment配置数据库环境 id属性唯一标识-->
<environment id="mysql">
<!-- transactionManager事务管理。 type属性,采用JDBC默认的事务-->
<transactionManager type="JDBC"></transactionManager>
<!-- dataSource数据源信息 type属性 连接池-->
<dataSource type="POOLED">
<!-- property获取数据库连接的配置信息 -->
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>

<!-- mappers引入映射配置文件 -->
<mappers>
<!-- mapper 引入指定的映射配置文件 resource属性指定映射配置文件的名称 -->
<mapper resource="StudentMapper.xml"/>
</mappers>
</configuration>


3.分页插件的参数获取

public void selectPaging() throws Exception{
//1.加载核心配置文件
InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");

//2.获取SqlSession工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);

//3.通过工厂对象获取SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession(true);

//4.获取StudentMapper接口的实现类对象
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);

//通过分页助手来实现分页功能
// 第一页:显示3条数据
//PageHelper.startPage(1,3);
// 第二页:显示3条数据
//PageHelper.startPage(2,3);
// 第三页:显示3条数据
PageHelper.startPage(3,3);

//5.调用实现类的方法,接收结果
List<Student> list = mapper.selectAll();

//6.处理结果
for (Student student : list) {
System.out.println(student);
}

//获取分页相关参数
PageInfo<Student> info = new PageInfo<>(list);
System.out.println("总条数:" + info.getTotal());
System.out.println("总页数:" + info.getPages());
System.out.println("当前页:" + info.getPageNum());
System.out.println("每页显示条数:" + info.getPageSize());
System.out.println("上一页:" + info.getPrePage());
System.out.println("下一页:" + info.getNextPage());
System.out.println("是否是第一页:" + info.isIsFirstPage());
System.out.println("是否是最后一页:" + info.isIsLastPage());

//7.释放资源
sqlSession.close();
is.close();
}

4.分页插件知识小结

• 分页助手相关 API

1. PageHelper:分页助手功能类。
2. startPage():设置分页参数
3. PageInfo:分页相关参数功能类。
4. getTotal():获取总条数
5. getPages():获取总页数
6. getPageNum():获取当前页
7. getPageSize():获取每页显示条数
8. getPrePage():获取上一页
9. getNextPage():获取下一页
10. isIsFirstPage():获取是否是第一页
11. isIsLastPage():获取是否是最后一页


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。