/**
* 分页帮助类
*
* @author vernon.chen
*
*/
public class PaginationHepler {
/**
* 构建分页查询语句
*
* @param querySQL
* 原始查询语句
* @param startIndex
* 开始行索引号
* @param lastIndex
* 结束行索引号
* @return 分页查询语句
*/
public static StringBuffer buildPaginationSQL(String querySQL, int startIndex, int lastIndex) {
StringBuffer paginationSQL = new StringBuffer(" SELECT * FROM ( ");
paginationSQL.append(" SELECT temp.* ,ROWNUM oracle_row_num FROM ( ");
paginationSQL.append(querySQL);
paginationSQL.append(" ) temp where ROWNUM <= " + lastIndex);
paginationSQL.append(" ) WHERE oracle_row_num > " + startIndex);
return paginationSQL;
}
/**
* 构建统计个数的查询语句
*
* @param querySQL
* 原始查询语句(不带排序)
* @return 统计个数的查询语句
*/
public static StringBuffer buildCountSQL(String querySQL) {
return new StringBuffer(" SELECT COUNT(1) FROM (" + querySQL + ")");
}
}