oracle 界面分页

Posted on 2013-08-01 19:26  冰天雪域  阅读(159)  评论(0编辑  收藏  举报
/**
 * 
 */
package org.pan.util;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import org.pan.contents.Contents;
import org.pan.db.DBConnectionManager;
import org.pan.io.ResUserIO;
/**
 * @author admin
 *
 */
public class PagerTools
{
	/**
	 * 
	 * @param currentPageNumber
	 * @return
	 * @throws Exception 
	 */
	public static List<ResUserIO> getResultSetByPageNumber(Integer currentPageNumber) throws Exception
	{
		DBConnectionManager dbMan = new DBConnectionManager();
		ResultSet fenyeData =null;
		Statement stmt = null;
		Integer totleDataNumber = null;
		List<ResUserIO> resInfoList = null;
		try
		{
			stmt = dbMan.getStatement();
			
			totleDataNumber = getAllDataNumber(stmt);
			String pageNumbers = ConfigTools.getInstance().getConfigByConfigName("PAGENUMBERS");
			Integer pageNumber = Integer.valueOf(pageNumbers);
			
			if(Contents.NO_DATA_IN_DATEBASE.equals(totleDataNumber))
			{
				return null;
			}
			
			boolean isFullPage = totleDataNumber>=currentPageNumber*pageNumber ? true:false;
			
			if(isFullPage)
			{
					Integer upLimit = (currentPageNumber-1)*pageNumber+1;
					Integer downLimit = currentPageNumber*pageNumber;
					String querySql = new StringBuffer().append("select username,phonumber,address from(select rownum r ,t1.username,t1.phonumber,address from tc_re_user t1 where rownum <=  ").append(downLimit).append(")t2 where t2.r>=").append(upLimit).toString();
					fenyeData = stmt.executeQuery(querySql);
			}
			else
			{
				Integer upLimit = (currentPageNumber-1)*pageNumber;
				String querySql = new StringBuffer().append("select username,phonumber,address from(select rownum r ,t1.username,t1.phonumber,address from tc_re_user t1 where rownum <=  ").append(totleDataNumber).append(")t2 where t2.r>").append(upLimit).toString();
				fenyeData = stmt.executeQuery(querySql);
			}
			
		if(null != fenyeData)
		{
			resInfoList = new ArrayList<ResUserIO>();
			ResUserIO resInfo = null;
			while(fenyeData.next())
			{
				resInfo = new ResUserIO();
				resInfo.setUserName(fenyeData.getString("username"));
				resInfo.setPhoNumber(fenyeData.getString("phonumber"));
				resInfo.setAddress(fenyeData.getString("address"));
				resInfoList.add(resInfo);
			}
		}
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		finally
		{
			try
			{
				stmt.close();
			}
			catch (SQLException e)
			{
				e.printStackTrace();
			}
		}
		return resInfoList;
	}
	
	public static Integer getTotlePage(Integer dateNumbers ,Integer eachPageNumber)
	{
		return dateNumbers%eachPageNumber==0 ? dateNumbers/eachPageNumber : dateNumbers/eachPageNumber+1;
	}

	public static Integer getAllDataNumber(Statement stmt) throws SQLException
	{
		ResultSet resultSet = stmt.executeQuery("select count(*) from tc_re_user");
		Integer totleDataNumber = 0;
		if(null != resultSet)
		{
			while(resultSet.next())
			{
				totleDataNumber = resultSet.getInt(1);
			}
		}
		return totleDataNumber;
	}	
}


Copyright © 2024 冰天雪域
Powered by .NET 9.0 on Kubernetes