栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Web手动分页之后端分页

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Web手动分页之后端分页

手动分页之后端分页 步骤分析

背景:对Emplee进行分页,选出生日再1990年以后出生的
1.定义实体类:

Employee

import java.util.Date;

public class Employee {
    private  int id;
    private String name;
    private Date birthday;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Employee(int id, String name, Date birthday) {
        this.id = id;
        this.name = name;
        this.birthday = birthday;
    }

    public Employee(Date birthday) {
        this.birthday = birthday;
    }

    public Employee() {
    }

    @Override
    public String toString() {
        return "Employee{" +
                "id=" + id +
                ", name='" + name + ''' +
                ", birthday='" + birthday + ''' +
                '}';
    }
}

2.创建pageBean对象,将查询的Employee对象全部放到pageBean中,以pageBean的方式进行返回

import java.util.List;

public class PageBean {

        private String currentPage;//当前页
        private String pageSize;//每页条数
        private Integer totalCount;//总条数
        private Integer totalPage;//总页数
        private List list;//当前页数据

    public String getCurrentPage() {
        return currentPage;
    }

    public void setCurrentPage(String currPage) {
        this.currentPage = currPage;
    }

    public String getPageSize() {
        return pageSize;
    }

    public void setPageSize(String pageSize) {
        this.pageSize = pageSize;
    }

    public Integer getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(Integer totalCount) {
        this.totalCount = totalCount;
    }

    public Integer getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(Integer totalPage) {
        this.totalPage = totalPage;
    }

    public List getList() {
        return list;
    }

    public void setList(List list) {
        this.list = list;
    }

    @Override
    public String toString() {
        return "PageBean{" +
                "currentPage='" + currentPage + ''' +
                ", pageSize='" + pageSize + ''' +
                ", totalCount=" + totalCount +
                ", totalPage=" + totalPage +
                ", list=" + list +
                '}';
    }
}

3.编写前端页面,前端页面需要传入的参数就两个一个是当前页,一个是每页显示的数据条数




    
    Title

    



    
当前: 页 共 页 共 条记录

4.编写Servlet,获取传递过来的参数,调用service层的方法

import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.ObjectMapper;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@WebServlet("/EmployeeListServlet")
public class EmployeeListServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

           response.setContentType("application/json;charset=utf-8");
            String currentPage=request.getParameter("currentPage");
            String pageSize = request.getParameter("pageSize");
            //对当前页和每页显示的大小进行判断,如果为空,则给个默认值
            if(" ".equals(currentPage)){ 
                currentPage="1";
            }
            if(" ".equals(pageSize)){
                pageSize="10";
            }
            EmployeeService employeeService=new EmployeeService();
            PageBean pageBean=employeeService.findEmpByPage(currentPage,pageSize);

            ObjectMapper mapper=new ObjectMapper();
            String data = mapper.writevalueAsString(pageBean);
            System.out.println(data);
            response.getWriter().write(data);
               }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

5.Service层逻辑处理

import java.util.List;
import java.util.Map;

public class EmployeeService {

    public PageBean findEmpByPage(String _currentPage, String _pageSize){

        int currentPage=Integer.parseInt(_currentPage);
        int pageSize=Integer.parseInt(_pageSize);

        PageBean pageBean=new PageBean();
        if(currentPage<=0){ //当前页小于0,则设置为1
            currentPage=1;
        }

        pageBean.setPageSize(_pageSize);

        //总记录数  总页数
        Employeedao employeedao=new Employeedao();
        int total=employeedao.getTotal();
        pageBean.setTotalCount(total);

        int totalPage = total%pageSize==0 ? total/pageSize:(total/pageSize)+1;
        if(currentPage>=totalPage){
            currentPage=totalPage;
        }

        pageBean.setCurrentPage(String.valueOf(currentPage));
        pageBean.setTotalPage(totalPage);

        //分页的数据集合
        int startPage=(currentPage-1)*pageSize;
        List employees = employeedao.getPage(startPage, pageSize);
        pageBean.setList(employees);

        return  pageBean;
    }

    public  List getAll(){
        Employeedao employeedao=new Employeedao();
        return employeedao.getAll();
    }
}


6.Dao层查询数据库

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Employeedao {

    //查询总记录数
        public int getTotal(){
            int total=0;
            PreparedStatement pstmt=null;
            ResultSet result=null;
            JDBCUtils jdbc=new JDBCUtils();
            Connection conn=jdbc.connect();
            String sql="SELECt COUNT(*) from tbl_employee WHERe birthday>'1990-01-01'";
            try {
                pstmt = conn.prepareStatement(sql);
                result = pstmt.executeQuery();
                while (result.next()) {
                    total = result.getInt(1);
                }
              } catch (Exception e) {
                e.printStackTrace();
            }finally{
                jdbc.close(conn, pstmt, result);
            }
            return total;
        }

    //分页查询用户数
    public List getPage(int currentPage,int pageSize){

        List list=new ArrayList();
        PreparedStatement pstmt=null;
        ResultSet result=null;
        JDBCUtils jdbc=new JDBCUtils();
        Connection conn=jdbc.connect();
        try {
            String sql="SELECt * from tbl_employee WHERe birthday>'1990-01-01' LIMIT ?,?";
            pstmt = conn.prepareStatement(sql);
                pstmt.setInt(1,currentPage);
                pstmt.setInt(2,pageSize);
                result = pstmt.executeQuery();
                while (result.next()){
                    Employee employee = new Employee();
                    employee.setId(result.getInt(1));
                    employee.setName(result.getString(2));
                    employee.setBirthday(result.getDate(3));
                    list.add(employee);
                }
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            jdbc.close(conn, pstmt, result);
        }
        return list;

    }
    }

7.工具类

import java.sql.*;

public class JDBCUtils {

        private Connection conn=null;
        private PreparedStatement pstmt=null;
        
        public Connection connect(){
            String user="root";
            String password="1234";
            String driverClass = "com.mysql.jdbc.Driver";
            String jdbcUrl = "jdbc:mysql://localhost:3306/demo";
            try {
                Class.forName(driverClass);
                conn = DriverManager.getConnection(jdbcUrl, user, password);
            } catch (Exception e) {
// TODO Auto-generated catch block
                e.printStackTrace();
            }
            return conn;
        }
        
        public void close(Connection conn,PreparedStatement pstmt,ResultSet result){
            if(conn != null){
                try {
                    conn.close();
                } catch (SQLException e) {
// TODO Auto-generated catch block
                }
            }
            if(pstmt != null){
                try {
                    pstmt.close();
                } catch (SQLException e) {
// TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if(result != null){
                try {
                    result.close();
                } catch (SQLException e) {
// TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/354424.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号