java 分页_java 关于分页的实现

关于java实现分页

1.分页工具类,封装分页信息

package com.student.util;

import java.util.List;

import com.student.entity.Person;

/**

* 封装分页信息

* @author Administrator

*

* @param

*/

public class PageModel {

//结果集

private List list;

//查询记录数

private int totalRecords;

//第几页

private int pageNo;

//每页多少条记录

private int pageSize;

//总页数

public int getTotalPages(){

return (totalRecords + pageSize -1)/pageSize;

}

//首页

public int getTopPage(){

return 1;

}

//上一页

public int getPreviousPage(){

if(pageNo<=1){

return 1;

}

return pageNo-1;

}

//下一页

public int getNextPage(){

if(pageNo>=getBottomPage()){

return getBottomPage();

}

return pageNo+1;

}

//尾页

public int getBottomPage(){

return getTotalPages();

}

public List getList() {

return list;

}

public void setList(List list) {

this.list = list;

}

public int getTotalRecords() {

return totalRecords;

}

public void setTotalRecords(int totalRecords) {

this.totalRecords = totalRecords;

}

public int getPageNo() {

return pageNo;

}

public void setPageNo(int pageNo) {

this.pageNo = pageNo;

}

public int getPageSize() {

return pageSize;

}

public void setPageSize(int pageSize) {

this.pageSize = pageSize;

}

}

2.测试类

public classPageModelTest{public static voidmain(String[] args){int pageNo=1;int pageSize=10;

findUserList(pageNo,pageSize);

}/*** 分页查询

*@parampageNo 第几页

*@parampageSize 每页多少条记录

*@returnPageModel*/

public PageModel findUserList(int pageNo,intpageSize){

PageModel pageModel = null;

Connection conn= null;

PreparedStatement ps= null;

ResultSet rs= null;//各数据库的分页语句不一样

/*oracle实现分页,三层嵌套,这里10应该为pageNo*pageSize ,0为(pageNo-1)*pageSize

String sql="

select column1,column2,column3,column4,column5 from

(select rownum rn,column1,column2,column3,column4,column5 from

(select column1,column2,column3,column4,column5 from table_name order by column desc)

where rownum<=10)

where rn>0";*/

//mysql实现分页

String sql="select * from person order by id desc limit ?,? ";

conn=DBUtil.getUtil().getConnection();try{

ps=conn.prepareStatement(sql);

ps.setInt(1, (pageNo-1) *pageSize);

ps.setInt(2, pageSize);

rs=ps.executeQuery();

List personList = new ArrayList();while(rs.next()){

Person person=newPerson();

person.setName(rs.getString("stu_name"));

person.setPassword(rs.getString("stu_psw"));

person.setNumber(rs.getString("stu_number"));

person.setBirthday(rs.getDate("stu_birth"));

person.setSex(rs.getInt("stu_sex"));

person.setPolity(rs.getInt("stu_polity"));

person.setBrief(rs.getString("stu_brief"));

person.setType(rs.getInt("type"));

person.setState(rs.getInt("state"));

personList.add(person);

}

pageModel= new PageModel();

pageModel.setList(personList);

pageModel.setTotalRecords(getTotalRecords(conn));

pageModel.setPageSize(pageSize);

pageModel.setPageNo(pageNo);

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}finally{try{if(rs!=null){

rs.close();

}if(ps!=null){

ps.close();

}if(conn!=null){

conn.close();

}

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}returnpageModel;

}/*** 得到总记录数,私有方法,外部无法访问,本类中使用

*@paramconn

*@return

*/

private intgetTotalRecords(Connection conn){

PreparedStatement ps= null;

ResultSet rs= null;

String sql="select count(*) from person";

conn=DBUtil.getUtil().getConnection();int count=0;try{

ps=conn.prepareStatement(sql);

rs=ps.executeQuery();while(rs.next()){//此时根据sql语句查出的只有一列,否则不建议用int标识字段

count = rs.getInt(1);

}

}catch(SQLException e) {

e.printStackTrace();

}finally{try{if(rs!=null){

rs.close();

}if(ps!=null){

ps.close();

}

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}returncount;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值