前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2023年03月 Java教学课程 117-Mybatis(分页插件)

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

作者头像
愚公搬代码
发布2023-04-04 09:25:37
2730
发布2023-04-04 09:25:37
举报
文章被收录于专栏:历史专栏

文章目录


一、分页插件

1.分页插件介绍

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

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

  • 分页查询:支持按照指定的页数和每页条数进行分页查询。
  • 总条数查询:支持查询符合条件的总条数。
  • 自动分页:支持自动根据查询结果的总条数进行分页。
  • 支持多种数据库:支持MySQL、Oracle、SQL Server等多种数据库。

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

2.分页插件的使用

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

开发步骤:

①导入与PageHelper的jar包

在这里插入图片描述
在这里插入图片描述

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

代码语言:javascript
复制
<?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.分页插件的参数获取

代码语言:javascript
复制
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
代码语言:javascript
复制
1. PageHelper:分页助手功能类。
2. startPage():设置分页参数 
3. PageInfo:分页相关参数功能类。 
4. getTotal():获取总条数 
5. getPages():获取总页数
6. getPageNum():获取当前页
7. getPageSize():获取每页显示条数
8. getPrePage():获取上一页 
9. getNextPage():获取下一页 
10. isIsFirstPage():获取是否是第一页 
11. isIsLastPage():获取是否是最后一页    
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、分页插件
    • 1.分页插件介绍
      • 2.分页插件的使用
        • 3.分页插件的参数获取
          • 4.分页插件知识小结
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档