问题:
分页显示所有学生信息
代码部分
数据库信息
实体类Student
package com.zc.entity;
public class StuInfo {
private int sid;
private String sname;
private String sex;
private int sage;
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getSage() {
return sage;
}
public void setSage(int sage) {
this.sage = sage;
}
public StuInfo(int sid, String sname, String sex, int sage) {
this.sid = sid;
this.sname = sname;
this.sex = sex;
this.sage = sage;
}
public StuInfo() {
}
}
工具类DBHelper用来连接mysql数据库
package com.zc.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBHelper {
public static final String URL = "jdbc:mysql://127.0.0.1:3306/school";
public static final String UNAME = "root";
public static final String PWD = "123456";
Connection conn;
/**
* 获取数据库连接
* @return 返回数据库连接对象
*/
public Connection getConn(){
try {
Class.forName("com.mysql.jdbc.Driver");
try {
conn = DriverManager. getConnection(URL,UNAME,PWD);
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return conn;
}
/**
* 关闭数据库连接
*/
public void close(){
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
dao层接口方法
daoimpl实现dao层接口方法
package com.zc.daoimpl;
import com.zc.dao.StuInfoDao;
import com.zc.entity.StuInfo;
import com.zc.util.DBHelper;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class StuInfoDaoImpl implements StuInfoDao {
@Override
public List<StuInfo> findAllLimit(int pagecode, int pagesize) {
//pagecode是当前页,pagesize是一页有几个
List<StuInfo> list = new ArrayList<StuInfo>();
DBHelper dbh = new DBHelper();
Connection conn = dbh.getConn();
String sql = "select * from stuinfo limit ?,?";
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1,(pagecode-1)*pagesize);
ps.setInt(2,pagesize);
ResultSet rs = ps.executeQuery();
while (rs.next()){
StuInfo stu = new StuInfo(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getInt(4));
list.add(stu);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
@Override
public int getCount() {
DBHelper dbh = new DBHelper();
Connection conn = dbh.getConn();
String sql = "select count(*) from stuinfo";
int count = 0;
try {
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
if (rs.next()){
count = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}
return count;
}
}
servlet
package com.zc.servlet;
import com.zc.dao.StuInfoDao;
import com.zc.daoimpl.StuInfoDaoImpl;
import com.zc.entity.StuInfo;
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.util.List;
@WebServlet(name = "SelectAllLimitServlet",urlPatterns = "/selectAllLimit")
public class SelectAllLimitServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int pageSize = 2,//每页显示的行数
pageCode = 0,//当前页
totalCount = 0,//总数据数
totalCode = 0;//总页数
StuInfoDao sid = new StuInfoDaoImpl();
//获取总数据数
totalCount = sid.getCount();
//通过总数据数算出总页数
if(totalCount%pageSize==0){
totalCode = totalCount/pageSize;
}else{
totalCode = totalCount/pageSize+1;
}
//如果用户是第一次访问,那么页数就是第一页
if(request.getParameter("pageCode")==null||request.getParameter("pageCode")==""){
pageCode=1;
}else {
pageCode = Integer.parseInt(request.getParameter("pageCode"));
}
//如果当前页大于总页数,那么点击下一页还是最后一页
if(pageCode>totalCode){
pageCode = totalCode;
}
request.setAttribute("totalCode",totalCode);
request.setAttribute("pageCode",pageCode);
List<StuInfo> list = sid.findAllLimit(pageCode,pageSize);
request.setAttribute("list",list);
request.getRequestDispatcher("homelimit.jsp").forward(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
jsp页面
要导入jstl标签库,不然c:标签不可用
页面效果显示