实现简单的分页功能

一,编写一个分页工具类

package com.bhf.util;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class PageDate {

    //当前页
    private Integer currentPage;
    //每页显示的条数
    private Integer limit;
    //总条数
    private Long total;
    //总页数
    private Long totalPage;

    //当页显示的数据
    private Object data;

    public Long getTotalPage(){
        totalPage=(total%limit==0)?(total/limit):(total/limit)+1;
        return totalPage;
    }

}

二,编写Servlet中分页查询方法

//分页查询方法
    protected void  selectPage(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
        //实现分页需要传递两个必须得数据 当前页currentPage 和 每页显示条数 limit
        Integer currentPage = Integer.valueOf(req.getParameter("currentPage"));
        Integer limit = Integer.valueOf(req.getParameter("limit"));
        PageDate pageDate = userService.selectPage(currentPage,limit);
        Long totalPage = pageDate.getTotalPage();
        //System.out.println(totalPage+"=totalPage");
        req.setAttribute("pageDate",pageDate);
        req.getRequestDispatcher("/main.jsp").forward(req,resp);
        //JsonResultWriter .writerJson(resp,pageDate);
    }

三,service层逻辑代码实现

//分页查询
    public PageDate selectPage(Integer currentPage, Integer limit) {

        PageDate pageDate = new PageDate();
        pageDate.setCurrentPage(currentPage);
        pageDate.setLimit(limit);
        //当前页显示数据 分页 start = (currentPage - 1)* limit;
        Integer start = (currentPage - 1)* limit;
        List<User> usrs = userDao.selectPage(start,limit);
        pageDate.setData(usrs);
        //数据总条数
        List<User> users = userDao.getAll();
        pageDate.setTotal(Long.valueOf(users.size()));
        return pageDate;
    }

四,dao层代码实现

//分页查询
    public List<User> selectPage(Integer start, Integer limit) {
        QueryRunner queryRunner = new QueryRunner(DruidUtil.getDataSource());
        String sql = "select * from user limit ?,?";
        try {
            List<User> users = queryRunner.query(sql, new BeanListHandler<User>(User.class), start, limit);
            return users;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值