Java web 分页查询

平时每次写分页的时,都要重新写一遍。。。感觉比较麻烦,但是这东西是一个模板,可以直接拿过来用。这里仅仅给自己记录一个模板。(部分代拿的别人的,原作者看到勿怪。原博客http://www.jb51.net/article/87274.htm)
JDBCUtils.class 用来连接数据库和关闭数据库,这里用的是mysql数据库


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class JDBCUtils {
    private Connection conn = null;
    private PreparedStatement pstmt = null;

    /**
     * connect 连接数据库
     * 
     * @return
     */
    public Connection connect() {
        String user = "root";
        String password = "root";
        String driverClass = "com.mysql.jdbc.Driver";
        String jdbcUrl = "jdbc:mysql://localhost:3306/jwfz";
        try {
            Class.forName(driverClass);
            conn = DriverManager.getConnection(jdbcUrl, user, password);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return conn;
    }

    /**
     * close 关闭数据库
     * 
     * @param conn
     * @param pstmt
     * @param resu
     */
    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();
            }
        }
    }
}

UserDao.class 用来获取数据库中页面


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

import test.dao.JDBCUtils;
import test.userdomain.User;
public class UserDao {
    /**
     * 计算总的页数
     * 
     * @return
     */
    public int getPage() {
        int recordCount = 0, t1 = 0, t2 = 0;
        PreparedStatement pstmt = null;
        ResultSet result = null;
        JDBCUtils jdbc = new JDBCUtils();
        Connection conn = jdbc.connect();
        String sql = "select count(*) from student";
        try {
            pstmt = conn.prepareStatement(sql);
            result = pstmt.executeQuery();
            result.next();
            recordCount = result.getInt(1);
            t1 = recordCount % 5;
            t2 = recordCount / 5;
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            jdbc.close(conn, pstmt, result);
        }
        if (t1 != 0) {
            t2 = t2 + 1;
        }
        return t2;
    }

    /**
     * 查询指定页的数据
     * 
     * @param pageNo
     * @return
     */
    public List<User> listUser(int pageNo,String stuNum) {
        PreparedStatement pstmt = null;
        ResultSet result = null;
        List<User> list = new ArrayList<User>();
        int pageSize = 5;
        int page = (pageNo - 1) * 5;
        JDBCUtils jdbc = new JDBCUtils();
        Connection conn = jdbc.connect();
        StringBuilder sb=new StringBuilder("select * from student  where 1=1 ");
        if(stuNum!=null&&stuNum!=""){
            sb.append(" and stuNum like '%"+stuNum+"%'");
        }
        sb.append(" limit ?,? ");
        try {
            pstmt = conn.prepareStatement(sb.toString());
            pstmt.setInt(1, page);
            pstmt.setInt(2, pageSize);
            result = pstmt.executeQuery();
            while (result.next()) {
                User user = new User();
                user.setStuNum(result.getString(1));
                user.setStuPass(result.getString(2));
                user.setStuName(result.getString(3));
                user.setStuInstitute(result.getString(4));
                user.setStuProfession(result.getString(5));
                user.setStuClass(result.getString(6));
                user.setStuPhoneNum(result.getString(7));
                user.setShenhestatu(result.getString(8));
                user.setcOLUME1(result.getString(9));
                list.add(user);
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            jdbc.close(conn, pstmt, result);
        }
        return list;
    }
}

userdomian.class user的实体类


public class User {

    public String stuNum;
    public String stuPass;
    public String stuName;
    public String stuInstitute;
    public String stuProfession;
    public String stuClass;
    public String stuPhoneNum;
    public String shenhestatu;
    public String cOLUME1;
    public String getStuNum() {
        return stuNum;
    }
    public String getStuPass() {
        return stuPass;
    }
    public String getStuName() {
        return stuName;
    }
    public String getStuInstitute() {
        return stuInstitute;
    }
    public String getStuProfession() {
        return stuProfession;
    }
    public String getStuClass() {
        return stuClass;
    }
    public String getStuPhoneNum() {
        return stuPhoneNum;
    }
    public String getShenhestatu() {
        return shenhestatu;
    }
    public String getcOLUME1() {
        return cOLUME1;
    }
    public void setStuNum(String stuNum) {
        this.stuNum = stuNum;
    }
    public void setStuPass(String stuPass) {
        this.stuPass = stuPass;
    }
    public void setStuName(String stuName) {
        this.stuName = stuName;
    }
    public void setStuInstitute(String stuInstitute) {
        this.stuInstitute = stuInstitute;
    }
    public void setStuProfession(String stuProfession) {
        this.stuProfession = stuProfession;
    }
    public void setStuClass(String stuClass) {
        this.stuClass = stuClass;
    }
    public void setStuPhoneNum(String stuPhoneNum) {
        this.stuPhoneNum = stuPhoneNum;
    }
    public void setShenhestatu(String shenhestatu) {
        this.shenhestatu = shenhestatu;
    }
    public void setcOLUME1(String cOLUME1) {
        this.cOLUME1 = cOLUME1;
    }


}

ListUser.class ListUser Servlet


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

import test.userdao.UserDao;
import test.userdomain.User;


public class ListUser extends HttpServlet {
    public ListUser() {
        super();
    }

    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

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

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setCharacterEncoding("utf-8");
        int pageNo = 1;
        String stuNum=request.getParameter("stuNum");
        UserDao userdao = new UserDao();
        List<User> lists = new ArrayList<User>();

        String pageno = request.getParameter("pageNos");
        if (pageno != null) {
            pageNo = Integer.parseInt(pageno);
        }
        lists = userdao.listUser(pageNo,stuNum);
        if(stuNum!=null&&stuNum!=""){
            request.setAttribute("stuNum",stuNum);
        }else{
            stuNum="";
        }
        request.setAttribute("recordCount", userdao.getPage(stuNum));
        request.setAttribute("listss", lists);
        request.setAttribute("pageNos", pageNo);
        request.getRequestDispatcher("test.jsp").forward(request, response);
    }

    public void init() throws ServletException {
        // Put your code here
    }
}

test.jsp**页面(js验证写的不全,以后用到再补充)**

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'userlist.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<style type="text/css">
th, td {
    width: 150px;
    border: 2px solid gray;
    text-align: center;
}

body {
    text-align: center;
}

a {
    text-decoration: none;
}

table {
    border-collapse: collapse;
}
</style>
</head>
<body>
<form action="ListUser" method="get">

<input type="text" name="stuNum"><button type="submit">提交</button>

</form>

    <h2 align="center">个人信息</h2>
    <table align="center">
        <tr>
            <td>学号</td>
            <td>密码</td>
            <td>姓名</td>
            <td>院系</td>
            <td>专业</td>
            <td>班级</td>
            <td>邮箱</td>
            <td>电话</td>
            <td>状态</td>
        </tr>
    </table>
    <table align="center">
        <c:forEach items="${listss}" var="person">
            <tr>
                <td class="hidden-480">${person.stuNum}</td>
                <td class="hidden-480">${person.stuPass }</td>
                <td class="hidden-480">${person.stuName }</td>
                <td class="hidden-480">${person.stuInstitute}</td>
                <td class="hidden-480">${person.stuProfession }</td>
                <td class="hidden-480">${person.stuClass }</td>
                <td class="hidden-480">${person.stuPhoneNum}</td>
                <td class="hidden-480">${person.shenhestatu }</td>
                <td class="hidden-480">${person.cOLUME1 }</td>
            </tr>
        </c:forEach>
    </table>
    <br>
    <c:if test="${pageNos>1 }">
        <a href="ListUser?pageNos=1&stuNum=${stuNum}">首页</a>
        <a href="ListUser?pageNos=${pageNos-1 }&stuNum=${stuNum}">上一页</a>
    </c:if>
    <c:if test="${pageNos <recordCount }">
        <a href="ListUser?pageNos=${pageNos+1 }&stuNum=${stuNum}">下一页</a>
        <a href="ListUser?pageNos=${recordCount }&stuNum=${stuNum}">末页</a>
    </c:if>
    <form action="ListUser">
        <h4 align="center">
            共${recordCount}页 <input type="text" value="${pageNos}" name="pageNos"
                size="1"><input type="submit" value="跳转">
        </h4>
    </form>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/sinat_34774688/article/details/72860783