PageHelper的使用和一些错误总结

使用PageHelper犯的错

以为pagehelper很简单,直接将全部查询结果全部给与pageInfo就行了,结果犯了大错,,分页结果显示不出来,只是将全部结果显示出来。

解决方案:将SQL查询语句的返回值放在pageHelper.startPage(pageNum,pageSize)后面

PageHelper.startPage(pageNum, pageSize);
List<Video> videos = videoService.findAll();
PageInfo pageInfo = new PageInfo(videos);
pageHelper一些参数:
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;
//所有导航页号
private int[] navigatepageNums;
//导航条上的第一页
private int navigateFirstPage;
//导航条上的最后一页
private int navigateLastPage;
}
pagehelper的使用
第一步:导入依赖
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.10</version>
        </dependency>
第二步:配置到spring整合配置文件applicationContext.xml中或者mybatis配置文件中
<!--配置sqlsessionFactoryBean-->
    <!--在基础的 MyBatis 用法中,是通过 SqlSessionFactoryBuilder 来创建 SqlSessionFactory 的,而在 MyBatis-Spring 中,则使用 SqlSessionFactoryBean 来创建。-->
    <bean name="sessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
<!--        <property name="configLocation" value="classpath:mybatis-config.xml.bak"></property>-->

        <property name="plugins">
            <set>
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties">
                        <props>
                            <!--配置数据库-->
                            <prop key="helperDialect">mysql</prop>
                            <!--当pageNum<1,默认查询一页
                                当pageNum>totalpage时,查最后一页-->
                            <prop key="reasonable">true</prop>
                            <!--支持接口传值-->
                            <prop key="supportMethonsArguments">true</prop>
                        </props>
                    </property>
                </bean>
            </set>
        </property>
    </bean>
第三步:controller层直接调用
 @RequestMapping("list")
    public String list(@RequestParam(value = "pageNum",required = false,defaultValue = "1") Integer pageNum,
                       @RequestParam(value = "pageSize",required = false,defaultValue = "3") Integer pageSize,
                       Model model){

        PageHelper.startPage(pageNum, pageSize);
        List<Video> videos = videoService.findAll();
        for (Video video : videos) {
            System.out.println(video);
        }
        PageInfo pageInfo = new PageInfo(videos);
        model.addAttribute("pageInfo",pageInfo);
         return "/list.jsp";
    }

自动的对PageHelper.startPage 方法下的第一个sql 查询进行分页
PageHelper.startPage(pageNum,pageSize);
//紧跟着的第一个select 方法会被分页
List videos = videoService.findAll();

也就是说再controller层PageHelper.startPage(pageNum,pageSize);语句后一定是紧跟查询语句。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值