pageHelper分页插件实现分页技术(mybatis应用web项目)

做后台的都知道,pageHelper分页插件可以很容易地实现后台分页技术,但是几乎都是应用于maven的项目,下面我来说一下应用于web项目的实现。

第一步:导入pageHelper的jar包

pagehelper-3.4.2-fix.jarpagehelper.jar

第二步:在mybatis的配置文件里配置插件

1 <plugins>
2         <plugin interceptor="com.github.pagehelper.PageHelper">
3             <property name="dialect" value="mysql"/>
4         </plugin>
5     </plugins>

第三步:service实现层

public List<RentTable> selectAllRentFile(RentTable rentTable,int page) {
        
        PageHelper.startPage(page, 5);
        
        return rentTableMapper.selectAllRentFile(rentTable);
    }

并不需要在配置文件中修改sql语句,只需要在service层调用pageHelper.startPage方法即可,page是从jsp传过来的操作的页码,“”5”代表每页显示的数量,

然后这个pageHelper就会自动地在sql语句分页,此时你返回的就是带着分页的结果。

第四步:controller层

@RequestMapping("/findAllRent")
    public ModelAndView findAllRentFile(RentTable rentTable,Integer page){
            
            ModelAndView mv = new ModelAndView();
        
            List<RentTable> rentList = rentCarService.selectAllRentFile(rentTable, page);
            PageInfo<RentTable> rentLists = new PageInfo<>(rentList);
            mv.addObject("rentLists", rentLists);
            mv.addObject("rentTable", rentTable);
            mv.setViewName("/html/lendFileList.jsp");
            
            return mv;
    }

controller层调用了service层,将返回值封装到PageInfo的对象里,就可以调用PageInfo的方法和属性在jsp页面进行展示了。下面是PageInfo的所有属性注释。

 //当前页
    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 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;

第五步:jsp页面展示省略。直接使用el表达式调用上边的属性可用。

扫描二维码关注公众号,回复: 1029255 查看本文章

猜你喜欢

转载自www.cnblogs.com/gpeiqi/p/9090574.html
今日推荐