SSM项目中使用pageHelper插件

SSM项目中使用PageHelper插件

  1. 在pom.xml中引入pageHelper依赖
            <!--分页插件-->
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper</artifactId>
                <version>5.1.2</version>
            </dependency>
  2. 在mybatis配置文件SqlMapConfig.xml中添加如下配置
     <!-- 引入 pageHelper插件 -->
    
        <plugins>
            <plugin interceptor="com.github.pagehelper.PageInterceptor">
                <!--reasonable:分页合理化参数,默认值为false。
                    当该参数设置为 true 时,pageNum<=0 时会查询第一页,
                    pageNum>pages(超过总数时),会查询最后一页。
                    默认false 时,直接根据参数进行查询。-->
                <property name="reasonable" value="true"/>
            </plugin>
        </plugins>
  3. Mapper
        @Select("SELECT * FROM `t_blog`")
        List<Blog> findBlogs();
  4. Service层
    public List<Blog> findAllBlogs(){
        return blogMapper.findBlogs();
    }
    
  5. Controller
      @GetMapping("/")
        public String toIndex(Model model, 
            @RequestParam(defaultValue = "1", required = true, value = "page") Integer page) {
            
            Integer pageSize = 8;//每页显示记录数
            //分页查询
            PageHelper.startPage(page, pageSize);//page 起始页
            List<Blog> blogList = blogService.findAllBlogs();
            PageInfo<Blog> pageInfo = new PageInfo<>(blogList );
    
            model.addAttribute("blogs", blogDtoList);
            model.addAttribute("page", pageInfo);
            return "index";
        }
  6. index.htm
    <!--blogs-->
        <div class="ui attached segment">
            <div class="ui padded vertical segment" th:each="blog:${blogs}">
               ..........
            </div>
        </div>
    
    
    <!--分页按钮-->
    <div class="ui bottom attached segment" th:if="${page.pages}>1">
         <div class="ui middle aligned two column grid">
              <div class="column">
                    <a href="#" th:href="@{/(page=${page.pageNum}-1)}" th:unless="${page.isFirstPage}"
                                     class="ui mini grey basic button">上一页</a>
               </div>
               <div class="right aligned column">
                    <a href="#" th:href="@{/(page=${page.pageNum}+1)}" th:unless="${page.isLastPage}"
                                     class="ui mini grey basic button">下一页</a>
              </div>
         </div>
    </div>
  7. 附PageInfo详情
    //当前页
    private int pageNum;
    //每页的数量
    private int pageSize;
    //当前页的数量
    private int size;
    //排序
    private String orderBy;
    
    //由于startRow和endRow不常用,这里说个具体的用法
    //可以在页面中"显示startRow到endRow 共size条数据"
    
    //当前页面第一个元素在数据库中的行号
    private int startRow;
    //当前页面最后一个元素在数据库中的行号
    private int endRow;
    //总记录数
    private long total;
    //总页数
    private int pages;
    //结果集
    private List<T> list;
    
    //第一页
    private int firstPage;
    //前一页
    private int prePage;
    //下一页
    private int nextPage;
    //最后一页
    private int lastPage;
    
    //是否为第一页
    private boolean isFirstPage = false;
    //是否为最后一页
    private boolean isLastPage = false;
    //是否有前一页
    private boolean hasPreviousPage = false;
    //是否有下一页
    private boolean hasNextPage = false;
    //导航页码数
    private int navigatePages;
    //所有导航页号
    private int[] navigatepageNums;
    

发布了24 篇原创文章 · 获赞 2 · 访问量 439

猜你喜欢

转载自blog.csdn.net/qq_42107430/article/details/103309220