JSP分页实例
分页技术实现
在开发网站的项目中难免会遇到各种各样的分页操作,分页的方法多种多样,现在将我在项目开发中的使用到的通用分页技术(既可以使用在jsp中,也可以使用在servlet,struts中,使用于多种数据库)分享给大家,供参考;
首先:在数据库操作的类中准备两个方法,一个是查询数据的方法,一个是获取总页数的方法
1)数据查询方法:
public List<StudentBean> getPage_student(int currentPage, int pageSize) {
List<StudentBean> list = new ArrayList<StudentBean>();
String sql = "select * from student where 1=1";
try {
int beginrow = pageSize * (currentPage - 1);// 开始的位置
int endrow = currentPage * pageSize;// 终止的位置
int currentNum = 0;// 经历的行数
conn = db.getConnection();//获取数据库连接
pstmt = conn.prepareStatement(sql);//执行sq语句
rs = pstmt.executeQuery();
while (rs.next()) {
if (currentNum >= beginrow && currentNum < endrow) {
StudentBean student = new StudentBean();//实例化一个实体类
student.setId(rs.getInt("id"));
student.setAge(rs.getInt("age"));
student.setName(rs.getString("name"));
student.setSex(rs.getString("sex"));
student.setAddress(rs.getString("address"));
list.add(student);
if(currentNum == endrow - 1)
break;
}
currentNum ++;
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
2)获取分页的总页数:
public int getPageSize(int count){//获取总的页数
int total = 0;
String sql = "select count(*) from student";
try{
conn = db.getConnection();
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if(rs.next()){
int records = rs.getInt(1);
if(records%count==0){
total = records / count;
}else{
total = records / count + 1;
}
}
}catch(Exception ex){
ex.printStackTrace();
}
return total;
}
以上工作完成以后,在准备一个分页功能的逻辑功能方法 (通常放在util包中)
public class PageInfo {
private int total;//总页数
private int curpage;//当前页
private int count;//每页显示记录数
private List<StudentBean> list;//接受数据库操作的方法返回的数组
private StudentDAO dao = new StudentDAO();//实例化数据库操作的类
public List<StudentBean> getList(){
list = dao.getPage_student(curpage,count);//开始进行分页
return list;
}
public PageInfo(int curpage){
this.curpage = curpage;
}
public void setTotal(){
this.total = dao.getPageSize(count);//得到总的页数
}
public int getTotal(){
return this.total;
}
public void setCurpage(int curpage){
this.curpage = curpage;
}
public int getCurpage(){
return this.curpage;
}
public void setCount(int count){
thi