• 售前

  • 售后

热门帖子
入门百科

mybatis插件之PageHelper,从此分页so easy

[复制链接]
紫影蓝星惹 显示全部楼层 发表于 2022-1-12 21:33:46 |阅读模式 打印 上一主题 下一主题
分页在实际开发中非常使用,实现分页的方式也挺多,不借助工具手写分页逻辑也能实现,使用工具可以帮助我们更方便快捷实现。今天一起来看看mybatis的一款分页插件PageHelper的用法:
  在此记录一下:
使用起来也很简单,下面操作一下

  • 在pom.xml导入jar包
    1.                 <dependency>
    2.             <groupId>com.github.pagehelper</groupId>
    3.             <artifactId>pagehelper</artifactId>
    4.             <version>4.1.4</version>
    5.         </dependency>
    复制代码
    tips:如果你不是maven项目,可以直接下载jar再导入到项目的lib下面
  • 在mybatis的配置文件增加插件配置
    1.         <plugins>
    2.         <plugin interceptor="com.github.pagehelper.PageHelper">
    3.             <property name="dialect" value="mysql"/>
    4.         </plugin>
    5.     </plugins>
    复制代码
    tips:这里演示使用的是mysql数据库,如果你是其他数据库,将value的值修改为对l应的数据库名称即可
  • 使用

    • 假如现在有这样一张表:

    • 实体类
      1. package com.lys.model;
      2. import java.util.Date;
      3. public class Blog {
      4.     private int id;
      5.     private String title;
      6.     private String author;
      7.     private Date createTime;
      8.     private int views;
      9.     public Blog() {
      10.     }
      11.     public Blog(int id, String title, String author, Date createTime, int views) {
      12.         this.id = id;
      13.         this.title = title;
      14.         this.author = author;
      15.         this.createTime = createTime;
      16.         this.views = views;
      17.     }
      18.         //setter和getter就不粘出来了
      19. }
      复制代码
    • 接口
      1. public interface BlogDAO {
      2.     List<Blog> selectAll();
      3. }
      复制代码
      对应的mapper文件
      1. <?xml version="1.0" encoding="UTF-8" ?>
      2. <!DOCTYPE mapper
      3.         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
      4.         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
      5. <mapper namespace="com.lys.dao.BlogDAO">
      6.     <sql id="select_fields">
      7.         id,title,author,createTime,views
      8.     </sql>
      9.     <select id="selectAll" resultType="blog">
      10.         select
      11.         <include refid="select_fields"></include>
      12.         from blog
      13.     </select>
      14. </mapper>
      复制代码
    • 测试:
      1. public class BlogTest {
      2.     private  SqlSession sqlSession = MybatisUtils.getSqlSession();
      3.     @Test
      4.     public void test1(){
      5.         BlogDAO mapper = sqlSession.getMapper(BlogDAO.class);
      6.         // 假如我要查看第二页的数据,每页显示3条数据
      7.         PageHelper.startPage(2, 3);
      8.         List<Blog> blogs = mapper.selectAll();
      9.         Page<Blog> blogPage = (Page<Blog>) blogs;
      10.         System.out.println("当前页码" + blogPage.getPageNum());
      11.         System.out.println("总页数:" + blogPage.getPages());
      12.         System.out.println("页面大小:"+blogPage.getPageSize());
      13.         for (Blog blog : blogs) {
      14.             System.out.println(blog);
      15.         }
      16.     }
      17. }
      复制代码
      结果:

      补充:Page这个类里还有好多方法属性,比如总页数,开始行,最后一行,等等,如下:
      1. public class Page<E> extends ArrayList<E> {
      2.     private static final long serialVersionUID = 1L;
      3.     private int pageNum;
      4.     private int pageSize;
      5.     private int startRow;
      6.     private int endRow;
      7.     private long total;
      8.     private int pages;
      9.     private boolean count;
      10.     private Boolean countSignal;
      11.     private String orderBy;
      12.     private boolean orderByOnly;
      13.     private Boolean reasonable;
      14.     private Boolean pageSizeZero;
      15. }
      复制代码
      可以根据实际需要获取相应的分页属性值。可以尝试一下哦!
      是不是很方便呢



来源:https://blog.caogenba.net/weixin_44107140/article/details/122414179
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作