pagehelper使用教程

1.导包

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

 2.在sqlsessionfactory下添加

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <!--//配置分页-->
        <!--为啥写了半天不对劲,原因是artifacts中没有导入依赖包-->
        <property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties" value="mysql">
                    </property>
                </bean>
            </array>
        </property>
    </bean>

3.在Service层新建返回一个PageInfo对象的接口

PageInfo queryAllBookPage(int page, int pageSize);

4.在Service层下的接口实现类添加,注意调用startPage后紧跟查询。最后将查询内容封装成一个PageInfo对象并且返回

public PageInfo queryAllBookPage(int page, int pageSize) {
        PageHelper.startPage(page,pageSize);
        List<Books> books = bookMapper.queryAllBook();
        PageInfo pageInfo = new PageInfo(books);
        return pageInfo;
    }

5.在Controller层添加请求接口,应当至少包括三个参数,page,pageSize,model

public String list(Integer page,Integer pageSize,Model model){
        //返回一个书籍展示页面
        //List<Books> books = bookService.queryAllBook();
        //PageInfo pageInfo = bookService.queryAllBookPage(page,pageSize);
        //model.addAttribute("list",books);
        model.addAttribute("pageInfo",bookService.queryAllBookPage(page,pageSize));
        return "allbook";
    };

 

6.在jsp页面中使用 返回对象名称.list访问数据

 <c:forEach var="book" items="${pageInfo.list}">
                            <tr>
                                <td>${book.bookID}</td>
                                <td>${book.bookName}</td>
                                <td>${book.bookCounts}</td>
                                <td>${book.detail}</td>
                                <td>
                                    <a class="btn" href="${pageContext.request.contextPath}/book/toUpdata?id=${book.bookID}">修改</a>
                                    <a class="btn" href="${pageContext.request.contextPath}/book/delBook/${book.bookID}">删除</a>
                                </td>
                            </tr>
</c:forEach>

7.jsp页面的分页按钮如下

<a href="${pageContext.request.contextPath}/book/allBook?page=${pageInfo.pageNum-1}&pageSize=${pageInfo.pageSize}" aria-label="Previous">
       <span aria-hidden="true">&laquo;</span>
 </a>

8.pageInfo还包含了以下可使用属性

public class PageInfo<T> implements Serializable {
private static final long serialVersionUID = 1L;
//当前页
private int pageNum;
//每页的数量
private int pageSize;
//当前页的数量
private int size;
//由于startRow 和endRow 不常用,这里说个具体的用法
//可以在页面中"显示startRow 到endRow 共size 条数据"
//当前页面第一个元素在数据库中的行号
private int startRow;
//当前页面最后一个元素在数据库中的行号
private int endRow;
//总记录数
private long total;
//总页数
private int pages;
//结果集
private List<T> list;
//前一页
private int prePage;
//下一页
private int nextPage;
//是否为第一页
private boolean isFirstPage = false;
//是否为最后一页
private boolean isLastPage = false;
//是否有前一页
private boolean hasPreviousPage = false;
//是否有下一页
private boolean hasNextPage = false;
//导航页码数
private int navigatePages;
传智播客——专注于Java、.Net 和Php、网页平面设计工程师的培训
北京市昌平区建材城西路金燕龙办公楼一层电话:400-618-9090
//所有导航页号
private int[] navigatepageNums;
//导航条上的第一页
private int navigateFirstPage;
//导航条上的最后一页
private int navigateLastPage;
}

 

posted @ 2021-12-18 21:06  Samukawa  阅读(820)  评论(0)    收藏  举报