首页 > 网站 > 建站经验 > 正文

s,ervlet分页代码示例

2019-11-02 14:52:49
字体:
来源:转载
供稿:网友

 本文介绍了servlet分页代码实现,采用Oracle数据库,获取SCOTT用户EMP表中的数据,分页实现步骤看下面代码

1.首先创建一个对象 UserData,用以保存从数据库中获取的数据。  代码如下:package com.tool; import java.math.BigDecimal;import java.util.Date; /** * Created by lx_sunwei on 14-1-6. */public class UserData {     /**     * EMP表中的数据属性     */    private String ename;    private String job;    private BigDecimal empno;    private BigDecimal mgr;    private Date hireDate;    private BigDecimal sal;    private BigDecimal comm;    private BigDecimal deptno;     public BigDecimal getEmpno() {        return empno;    }     public void setEmpno(BigDecimal empno) {        this.empno = empno;    }     public BigDecimal getMgr() {        return mgr;    }     public void setMgr(BigDecimal mgr) {        this.mgr = mgr;    }     public Date getHireDate() {        return hireDate;    }     public void setHireDate(Date hireDate) {        this.hireDate = hireDate;    }     public BigDecimal getSal() {        return sal;    }     public void setSal(BigDecimal sal) {        this.sal = sal;    }     public BigDecimal getComm() {        return comm;    }     public void setComm(BigDecimal comm) {        this.comm = comm;    }     public BigDecimal getDeptno() {        return deptno;    }     public void setDeptno(BigDecimal deptno) {        this.deptno = deptno;    }     public String getEname() {        return ename;    }     public void setEname(String ename) {        this.ename = ename;    }     public String getJob() {        return job;    }     public void setJob(String job) {        this.job = job;    }}   2.创建一个 DBHelper 对象用以与数据库进行交互 代码如下:package com.dao; import com.tool.UserData; import java.math.BigDecimal;import java.sql.*;import java.util.*;import java.util.Date; /** * Created by lx_sunwei on 14-1-6. */public class DBHelper {     Connection conn;  //数据库连接对象    PreparedStatement pt;  //SQL语句预处理对象    ResultSet rs;  //结果集对象     public  DBHelper(){        try {            Class.forName("oracle.jdbc.driver.OracleDriver");  //装载驱动        } catch (ClassNotFoundException e) {            e.printStackTrace();        }    }     /**     * 获取当前页的数据     * @param curPage     * @param rowsPerPage     * @return     */    public List<UserData> getData(int curPage, int rowsPerPage) {         List<UserData> dataList = new ArrayList<>();        String url = "jdbc:oracle:thin:@localhost:1521:orcl";        try {            conn = DriverManager.getConnection(url,"scott","tiger");            String sql = "select * from emp where rownum <= ((? - 1) * "+rowsPerPage+" + "+rowsPerPage+") minus " +                    " select * from emp where rownum <= (? - 1) * "+rowsPerPage+" ";            pt = conn.prepareStatement(sql);            pt.setInt(1,curPage);            pt.setInt(2,curPage);            rs = pt.executeQuery();            while (rs.next()){                /**                 * 从结果集中取得数据                 */                UserData userData = new UserData();                BigDecimal empno = rs.getBigDecimal("empno");                String ename = rs.getString("ename");                String job = rs.getString("job");                BigDecimal mgr = rs.getBigDecimal("mgr");                Date hireDate = rs.getDate("hiredate");                BigDecimal sal = rs.getBigDecimal("sal");                BigDecimal comm = rs.getBigDecimal("comm");                BigDecimal deptno = rs.getBigDecimal("deptno");                /**                 * 设置对象属性                 */                userData.setEmpno(empno);                userData.setEname(ename);                userData.setJob(job);                userData.setMgr(mgr);                userData.setHireDate(hireDate);                userData.setSal(sal);                userData.setComm(comm);                userData.setDeptno(deptno);                dataList.add(userData);  //把对象添加集合中            }            rs.close();            pt.close();            conn.close();        } catch (SQLException e) {            e.printStackTrace();        }        return dataList;    }     /**     * 返回总页数     * @return     */    public int getMaxPage(int rowsPerPage) {        int maxPage;        int maxRowCount = 0;        String url = "jdbc:oracle:thin:@localhost:1521:orcl";        try {            conn = DriverManager.getConnection(url,"scott","tiger");  //创建数据库连接            String sql = "select count(*) from emp";            pt = conn.prepareStatement(sql);            rs = pt.executeQuery();            if (rs.next()){                maxRowCount = rs.getInt(1);  //总行数            }        } catch (SQLException e) {            e.printStackTrace();        }        maxPage = (maxRowCount + rowsPerPage - 1) / rowsPerPage;  //总页数        return maxPage;    }}   3.创建 Servlet 对显示页面进行控制  代码如下:package com.servlet; import com.dao.DBHelper;import com.tool.UserData; import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.util.*; /** * Created by lx_sunwei on 14-1-6. */public class Servlet extends HttpServlet {     public int rowsPerPage;  //每页显示的行数    public int curPage;  //当前页页码    public int maxPage;  //总共页数    DBHelper db = new DBHelper();    public Servlet(){        rowsPerPage = 5;    }     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        String curPage1 = request.getParameter("page");  //获取当前页页码        if (curPage1 == null){            curPage = 1;            request.setAttribute("curPage",curPage);  //设置curPage对象        }else {            curPa
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表