9. Mybatis plugins标签 实现分页

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

开发步骤: ① 导入通用PageHelper的坐标

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

③ 测试分页数据获取

1.导入分页助手依赖 和 语句解析依赖:

  <!--分页助手依赖-->
    <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper</artifactId>
      <version>3.7.5</version>
    </dependency>
    <!--语句解析-->
    <dependency>
      <groupId>com.github.jsqlparser</groupId>
      <artifactId>jsqlparser</artifactId>
      <version>0.9.1</version>
    </dependency>

2. 核心配置类中配置

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


<configuration>



    <properties resource="datasourceInfo.properties"></properties>

    <typeAliases>
        <typeAlias type="com.bihu.Bean.User" alias="User"></typeAlias>
        <typeAlias type="java.util.List" alias="List"></typeAlias>
    </typeAliases>

    <typeHandlers>
        <typeHandler handler="com.bihu.handler.DateTypeHandler"></typeHandler>
    </typeHandlers>

    <!--注意! 插件定义要在mapper 映射标签之前! 【为这里位置好像挺严格的....】-->
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageHelper">
            <!--这里指定语言-->
            <property name="dialect" value="mysql"/>
        </plugin>
    </plugins>




    <environments default="dev">
        <environment id="dev">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>


    
    <mappers>
        <mapper resource="com/bihu/mapper/UserMapper.xml"></mapper>
    </mappers>


</configuration>
mybatis 核心配置文件

3.测试

整个接口 写上映射     查询全部,然后我们在测试哪里分页即可:
里面也写了如何获取分页的各项信息:

    package com.bihu.Service;


    import com.bihu.Bean.User;
    import com.bihu.Dao.UserMapper;
    import com.github.pagehelper.PageHelper;
    import com.github.pagehelper.PageInfo;
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;

    import java.io.IOException;
    import java.io.InputStream;
    import java.util.List;

    public class UserService {
        public static void main(String[] args) throws IOException {

            InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
            SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
            SqlSession sqlSession = build.openSession();
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);

            //下面这个starPage是静态方法。
            PageHelper.startPage(2,3);//设置分页 【设置第一页; 每一页三条】
            List<User> all = mapper.findAll();//查询全部

            for (User item:all
                 ) {
                System.out.println(item);
            }

            //可以new一个PageInFo对象 获取分页的各项参数:
            PageInfo<User> pageInfo = new PageInfo<User>(all);
            System.out.println("当前页:" + pageInfo.getPageNum());
            System.out.println("每页条数:" + pageInfo.getPageSize());
            System.out.println("总条数:" + pageInfo.getTotal());
            System.out.println("总页数:" + pageInfo.getPages());
            System.out.println("上一页:" + pageInfo.getPrePage());
            System.out.println("下一页:" + pageInfo.getNextPage());
            System.out.println("是否第一页:" + pageInfo.isIsFirstPage());
            System.out.println("是否最后一页" + pageInfo.isIsLastPage());

            sqlSession.close();
        }
    }
Service 测试

本文来自博客园,作者:咸瑜,转载请注明原文链接:https://www.cnblogs.com/bi-hu/p/15165376.html

原文地址:https://www.cnblogs.com/bi-hu/p/15165376.html