发个Java分页代码

2 篇文章 0 订阅
2 篇文章 0 订阅

类名SplitPageUtil:

import java.util.ArrayList;
import java.util.List;

public class SplitPageUtil {
	
	private int page = 1;  //当前页
	private int pageNum = 0; //每页数据数
	private int count = 0;//总数据数量
	private int offset = 0;//从第几条数据开始查询
	private int totalpage=0;//总页数
	private int prePage=1;//上一页
	private int nextPage=1;//下一页
	private int lastPage=1;//末页
	private int firstPage=1;//首页
	private int step = 3;//分页页码的步长
	private List arrayPage = null; //显示的分页的页码
	
	public int getPage() {
		return page;
	}

	public void setPage(int page) {
		this.page = page;
	}

	public int getPageNum() {
		return pageNum;
	}

	public void setPageNum(int pageNum) {
		this.pageNum = pageNum;
	}

	public int getCount() {
		return count;
	}

	public void setCount(int count) {
		this.count = count;
	}

	public int getOffset() {
		return offset;
	}

	public void setOffset(int offset) {
		this.offset = offset;
	}

	public int getTotalpage() {
		return totalpage;
	}

	public void setTotalpage(int totalpage) {
		this.totalpage = totalpage;
	}

	public int getPrePage() {
		return prePage;
	}

	public void setPrePage(int prePage) {
		this.prePage = prePage;
	}

	public int getNextPage() {
		return nextPage;
	}

	public void setNextPage(int nextPage) {
		this.nextPage = nextPage;
	}

	public int getLastPage() {
		return lastPage;
	}

	public void setLastPage(int lastPage) {
		this.lastPage = lastPage;
	}

	public int getFirstPage() {
		return firstPage;
	}

	public void setFirstPage(int firstPage) {
		this.firstPage = firstPage;
	}

	public int getStep() {
		return step;
	}

	public void setStep(int step) {
		this.step = step;
	}

	public List getArrayPage() {
		return arrayPage;
	}

	public void setArrayPage(List arrayPage) {
		this.arrayPage = arrayPage;
	}

	public SplitPageUtil(){
		
	}
	
	public SplitPageUtil(int count,int pageNum,int page){
		this.splitpage(count, pageNum, page);
	}
	
	public  void splitpage(int count,int pageNum,int page){
		
		this.count =count;
		this.pageNum=pageNum;
		this.page=page;
			
	 	
		this.totalpage =  (this.count + this.pageNum - 1) / this.pageNum;
		
		if (this.totalpage != 0) {
			this.lastPage =this.totalpage;
	   	}  
		
	    if (this.page< 0 || this.page > this.totalpage) {
		   this.page = 1; 
	    }
	   

	    this.prePage  = this.page - 1>0?this.page - 1:1;
	    this.nextPage = this.page + 1>this.totalpage?this.totalpage:this.page + 1;

	   
	    this.offset =(this.page-1)*this.pageNum;
				
	}
	
 
	public  void getShowPage(){
		 
			arrayPage = new ArrayList(); 
			for(int i=page-step>0?page-step:1;i<page&&i>0;i++){
				arrayPage.add(i);
			}
	 
			for(int j=page;j<totalpage+1&&j<page+step;j++){
				arrayPage.add(j);
			}
	}
	 
}

BIZ对应改动的地方:

//创建DAO
					OrderDao dao = new OrderDao();
					
					Long count = dao.count(conn, sql);
					
					if(count>0){
						int num = Integer.parseInt(count+"");
						SplitPageUtil sp = new  SplitPageUtil( num , pageNum, page);
						sp.setStep(3);
						sp.getShowPage();
						//dao执行查询
						_l=dao.findbyAll(conn,sql,sp.getOffset(),sp.getPageNum());
						map = new HashMap();
						map.put("sp", sp);
						map.put("data", _l);
					}

DAO需要改动的地方:

public List findbyAll(Connection _conn, String strSql,int offset ,int limit)
	{
		Vector v = new Vector();
		//定义 存放SQL语句的 StringBuffer
		StringBuffer sbSQL = null;
		//定义 PreparedStatement
		PreparedStatement ps = null;
		//定义数据库链接
		Connection conn = null;
		ResultSet rs=null;
		try
		{
			conn = _conn;
			sbSQL = new StringBuffer();
			sbSQL.append("select * from  Orderx  where  "); 
			sbSQL.append(strSql); 
			sbSQL.append(" limit "+offset+","+limit); 
			ps = conn.prepareStatement(sbSQL.toString());
			//执行SQL
			rs = ps.executeQuery();
			while(rs.next()){
				OrderVo vo1= new OrderVo();

				vo1.setUserid(rs.getString("userid"));
				vo1.setState(rs.getShort("state"));
				vo1.setTotal(rs.getFloat("total"));
				vo1.setNumbers(rs.getInt("numbers"));
				vo1.setPrice(rs.getFloat("price"));
				vo1.setName(rs.getString("name"));
				vo1.setId(rs.getInt("id"));

				v.addElement(vo1);
			}
			 
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
		finally
		{
			try
			{
				//关闭 ps
				if (ps != null)
				{
					ps.close();
					ps = null;
				}
			}
			catch (Exception ex)
			{
				ex.printStackTrace();
			}
		}
		return v;
	}

public Long count(Connection _conn, String strSql)
{
	Long  num = 0l;
	//定义 存放SQL语句的 StringBuffer
	StringBuffer sbSQL = null;
	//定义 PreparedStatement
	PreparedStatement ps = null;
	//定义数据库链接
	Connection conn = null;
	ResultSet rs=null;
	try
	{
		conn = _conn;
		sbSQL = new StringBuffer();
		sbSQL.append("select count(*) as num from  Orderx  where  "); 
		sbSQL.append(strSql); 
		ps = conn.prepareStatement(sbSQL.toString());
		//执行SQL
		rs = ps.executeQuery();
		while(rs.next()){			
			num = rs.getLong("num");			
		}
		 
	}
	catch (Exception ex)
	{
		ex.printStackTrace();
	}
	finally
	{
		try
		{
			//关闭 ps
			if (ps != null)
			{
				ps.close();
				ps = null;
			}
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
	}
	return num;
} 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值