zoukankan      html  css  js  c++  java
  • Mybatis分页插件PageHelper的实现

    Mybatis分页插件PageHelper的实现


    前言

    分页这个概念在做web网站的时候很多都会碰到 说它简单吧 其实也简单 小型的网站,完全可以自己写一个,首先查出数据库总条数,然后按照分页大小分为多少页,通过mysql语句里面的limit x,y 完全可以实现 不过有插件就用插件吧 毕竟人家写好的直接拿过来用就好啦 没必要造重复的轮子!


    1.依赖Jar包导入或者是添加依赖(Maven项目)

    <dependency>
         <groupId>com.github.jsqlparser</groupId>
         <artifactId>jsqlparser</artifactId>
        <version>0.9.5</version>
    </dependency>
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper</artifactId>
        <version>5.1.2</version>
    </dependency>

    或者导入Jar包后如图所示 pagehelper版本5.12

    2.全局配置文件里面加入插件配置信息

    <!-- 配置分页插件 -->
        <plugins>
            <!--自4.0.0版本以后实现这个接口了 com.github.pagehelper.PageInterceptor  -->
            <plugin interceptor="com.github.pagehelper.PageInterceptor">
                <!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库--> 
                 <!-- 自4.0.0以后的版本已经可以自动识别数据库了,所以不需要我们再去指定数据库 -->
                 <!--<property name="dialect" value="Mysql"/>-->
            </plugin>
        </plugins>

    3.配置文件结点注意顺序(顺序错误可能会引起错误)

    <?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="mysql.properties"></properties>
    
        <!-- 配置分页插件 -->
        <plugins>
            <!--自4.0.0版本以后实现这个接口了 com.github.pagehelper.PageInterceptor  -->
            <plugin interceptor="com.github.pagehelper.PageInterceptor">
                <!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库--> 
                 <!-- 自4.0.0以后的版本已经可以自动识别数据库了,所以不需要我们再去指定数据库 -->
                 <!--<property name="dialect" value="Mysql"/>-->
            </plugin>
        </plugins>
    
        <!-- 配置mybatis运行环境 -->
        <environments default="cybatis">
            <environment id="cybatis">
                <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
                <transactionManager type="JDBC" />
                <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
                <!-- POOLED 表示支持JDBC数据源连接池 -->
                <!-- UNPOOLED 表示不支持数据源连接池 -->
                <!-- JNDI 表示支持外部数据源连接池 -->
                <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>
            <!-- 1.自动扫描 -->
            <package name="cn.mapper" />
            <!-- 2.一个个配置 -->
            <!--<mapper resource="com/cy/mybatis/mapper/UserMapper.xml"/> -->
        </mappers>
    </configuration>

    4.增加Mapper分页查询接口

    package cn.mapper;
    
    import java.util.List;
    
    import cn.beans.UserBean;
    
    public interface UserMapper {
    
        List<UserBean> selectAllUser() throws Exception;
    
    }

    5.配置UserMapper.xml文件

    <select id="selectAllUser" resultMap="userMap">
            select * from user
    </select>

    6.书写测试类进行测试

    public static void select1() {
    
            SqlSession session = DBUtil.getSession();
            UserMapper user = session.getMapper(UserMapper.class);
    
            try {
           //PageHelper.startPage(pageNum, pageSize) 页码,分页大小 PageHelper.startPage(
    1, 3); List<UserBean> list = user.selectAllUser(); for(UserBean bean :list){ System.out.println(bean.getName()); } session.commit(); } catch (Exception e) { e.printStackTrace(); session.rollback(); } }

    7.测试结果

    8.查看数据库所有数据进行比对

    9.结语以及易错点提示

    1.错误易出现于mybatis.conf.xml全局配置文件中 要注意插件配置的位置,位置不对也会报错!

    2.版本问题 4.00版本后pagehelper 接口的位置发生了变化,有些小伙伴在其他网站上看到的接口已经过时了 易出现错误 在一个就是不需要指定数据库了 4.00版本后会自动扫描!

    3.每天记录一点,进步一点!


    参考:https://blog.csdn.net/maxiao1204/article/details/79937012   https://www.cnblogs.com/shanheyongmu/p/5864047.html

    欢迎指正评论,欢迎推荐关注!

    转载请注明出处!

  • 相关阅读:
    windows-如何免费让电脑自带的家庭中文版升级成专业版且不需要重装
    服务器管理-windows服务器如果让服务器自动定时重启
    International Olympiad In Informatics 2009 August 8 – 15, Plovdiv, Bulgaria Contest Day 1
    USACO 2008 FEB Eating Together
    POJ 2823 Sliding Window 滑动窗口 单调队列 Monotone Queue
    1st Junior Balkan Olympiad in Informatics Boats 船 DP
    USACO 2009 FEB Fair Shuttle 庙会班车 贪心
    USACO 2007 NOV Sunscreen 防晒霜 贪心
    JN 刷墙 过程DP
    Luogu
  • 原文地址:https://www.cnblogs.com/ChromeT/p/10065393.html
Copyright © 2011-2022 走看看