【MyBatis】MyBatis分页插件的使用

文章目录

  • MyBatis分页插件的使用
    • 前置知识
    • 分页插件的使用

MyBatis分页插件的使用

前置知识

  • MyBatis基础用法。推荐阅读:MyBatis的基本使用

  • MySQL分页查询:

    知道分页查询的规律,同时知道limit index pageSize的使用

    • index:当前页的起始索引

    • pageSize:每页页记录的显示条数

    • pageNum:当前页的页码

    • count:表的总记录数

    • totalPage:分页查询的总页数

      前端会传递pageSizepageNum两个参数,通过这两个参数要知道如何计算出index的值;count这个参数可以从数据库中查询得到,然后通过countpageSize求出totalPage

      公式

      • i n d e x = ( p a g e N u m − 1 ) ∗ p a g e S i z e index = (pageNum-1)*pageSize index=(pageNum1)pageSize
      • t o t a l p a g e = ( c o u n t % p a g e S i z e   ! =   0 )   ?   ( c o u n t   /   p a g e S i z e + 1 )   :   ( c o u n t / p a g e S i z e ) totalpage = (count\%pageSize~!=~0)~?~(count~/~pageSize+1)~:~(count/pageSize) totalpage=(count%pageSize != 0) ? (count / pageSize+1) : (count/pageSize)

    首页 上一页 2 3 4 5 6下一页 尾页

    其中2,3,4,5,6的数量由导航分页展示数navigatePages(此时它取值5)控制

分页插件的使用

由于分页查询比较繁琐,代码逻辑很简单,但是要写很多判断,所以为了简化开发就可以直接使用分页查询插件。

浅析分页插件的原理:分页插件内置了一个拦截器,当我们将分页插件引入项目中后,一旦调用查询方法就会触发分页插件中的拦截器,拦截器会会将自动将查询结果进行分页展示

演示

创建Maven工程
导入依赖
编写MyBatis配置文件
测试
  • Step1:创建Maven工程

    略……

  • Step2:导入依赖

    pom.xml:

    
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0modelVersion>
    
        <groupId>org.examplegroupId>
        <artifactId>day04_mybatis3artifactId>
        <version>1.0-SNAPSHOTversion>
    
        <properties>
            <maven.compiler.source>8maven.compiler.source>
            <maven.compiler.target>8maven.compiler.target>
            <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        properties>
        <dependencies>
            
            <dependency>
                <groupId>mysqlgroupId>
                <artifactId>mysql-connector-javaartifactId>
                <version>8.0.16version>
            dependency>
            
            <dependency>
                <groupId>org.mybatisgroupId>
                <artifactId>mybatisartifactId>
                <version>3.5.10version>
            dependency>
            
            <dependency>
                <groupId>junitgroupId>
                <artifactId>junitartifactId>
                <version>4.13.2version>
                <scope>testscope>
            dependency>
            
            <dependency>
                <groupId>log4jgroupId>
                <artifactId>log4jartifactId>
                <version>1.2.17version>
            dependency>
            
            <dependency>
                <groupId>com.github.pagehelpergroupId>
                <artifactId>pagehelperartifactId>
                <version>5.3.0version>
            dependency>
        dependencies>
    
        <build>
            <plugins>
                
                <plugin>
                    <groupId>org.mybatis.generatorgroupId>
                    <artifactId>mybatis-generator-maven-pluginartifactId>
                    <version>1.3.0version>
    
                    
                    <dependencies>
                        
                        <dependency>
                            <groupId>org.mybatis.generatorgroupId>
                            <artifactId>mybatis-generator-coreartifactId>
                            <version>1.3.2version>
                        dependency>
                        
                        <dependency>
                            <groupId>mysqlgroupId>
                            <artifactId>mysql-connector-javaartifactId>
                            <version>8.0.16version>
                        dependency>
                    dependencies>
                plugin>
            plugins>
        build>
        
    project>
    
  • Step3:编写MyBatis配置文件

    mybatis.config:

    <plugins>
    	
    	<plugin interceptor="com.github.pagehelper.PageInterceptor">plugin>
    plugins>
    

    注意:按照标签的顺序添加在mybatis核心配置文件中

  • Step4:编写Java代码

    import com.github.pagehelper.PageHelper;
    import com.hhxy.mapper.EmpMapper;
    import com.hhxy.pojo.Emp;
    import com.hhxy.utils.SqlSessionFactoryUtil;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.junit.Test;
    
    import java.util.List;
    
    /**
     * 测试分页插件
     * @author ghp
     * @date 2022/9/12
     */
    public class PageTest {
        @Test
        public void pageTest(){
            //1、获取SqlSessionFactory对象
            SqlSessionFactory sqlSF = SqlSessionFactoryUtil.getSqlSF();
            //2、获取SqlSession对象
            SqlSession sqlS = sqlSF.openSession();
            //3、获取Mapper接口对象
            EmpMapper mapper = sqlS.getMapper(EmpMapper.class);
            //4、执行SQL,同时实现分页功能
            //确定分页格式(会返回一个Page对象)
            PageHelper.startPage(2,3);
    
            /*
            查看Page对象(Page对象本质是一个ArrayList集合,里面存储了部分分页相关的数据)
            System.out.println(PageHelper.startPage(2,3););
             */
    
            //查询所有
            List<Emp> emps = mapper.selectByExample(null);
            emps.forEach(System.out::println);
    
            /*
            查看PageInfo对象(该对象存储了分页相关的所有数据,但必须是执行完查询的SQL能获取所有数据)
            int navigatePages = 5;//导航分页展示数,控制分页展示列表
            PageInfo pageInfo = new PageInfo<>(emps,navigatePages);
            System.out.println(pageInfo);
           */
    
        }
    }
    
  • Step5:测试

    【MyBatis】MyBatis分页插件的使用_第1张图片

    【MyBatis】MyBatis分页插件的使用_第2张图片

    image-20220912170055808

    pageInfo中的数据有:

    【MyBatis】MyBatis分页插件的使用_第3张图片

CRUD (创建:Create,读取:Read,更新:Update,删除:Delete)

IDUS(增:Insert,删:Delete,改:Update,查:Select)

你可能感兴趣的:(#,Java,#,B_Framework,mybatis,java)