⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oraclepagesqlhelper.java.svn-base

📁 文件上传用例,纯sql分页源码,有用的着地方请下载 试用
💻 SVN-BASE
字号:
package org.derrick.jdbc.page.sql;
/**
 * 使用该类时:FieldClause 不能使用.*这种写法

 * 
 * @author 刘冬宝Oct 26, 2006
   版权申明:所有人员均可自由修改源码并再发布,但必须保留此相关信息
 *
 */
public class OraclePageSqlHelper extends PageSqlHelper {


	public OraclePageSqlHelper() {
		super();
	}

	public OraclePageSqlHelper(int recordnumPerPage, String fieldClause, String conditionClause) {
		super(recordnumPerPage, fieldClause, conditionClause);
	}

	/**
	 * 返回用于获取第几页的sql,页号从一开始记数
	 */
	/**
	 * 返回用于获取第几页的sql,页号从一开始记数
	 */
	protected String buildPageSql(int pageNo) {
		// "select * from (select rownum row_id, id,name "
		// + "from ( select a.id, a.name from pageDemo a where a.id >5 order by
		// a.id asc )) "
		// + "where row_id between 1 and 10;";
		StringBuffer sqlBuffer = new StringBuffer(
				"select * from (select rownum row_id, ");
		sqlBuffer.append(getFieldClauseWithoutPrefix());
		sqlBuffer.append(" from ( select  ");
		sqlBuffer.append(this.getFieldClause());
		sqlBuffer.append(" from ");
		sqlBuffer.append(this.getConditionClause());
		sqlBuffer.append(" order by ");
		sqlBuffer.append(this.getOrderByClause());
		sqlBuffer.append("))where row_id between ");
		sqlBuffer.append((pageNo - 1) * this.getRecordnumPerPage() + 1);
		sqlBuffer.append(" and ");
		sqlBuffer.append(pageNo * this.getRecordnumPerPage());
		if (logger.isDebugEnabled()) {
			logger.debug("getPageSql(" + pageNo + "):" + sqlBuffer.toString());
		}
		return sqlBuffer.toString();
	}

	private String getFieldClauseWithoutPrefix() {
		/**
		 * 将a.id, a.name转换成id,name
		 * 
		 */
		if (logger.isDebugEnabled()) {
			logger.debug("fieldClause is :" + getFieldClause());
		}
		String[] tempArray = getFieldClause().split(",");
		StringBuffer resultBuffer = new StringBuffer();
		for (int i = 0; i < tempArray.length; i++) {
			resultBuffer.append(tempArray[i].substring(tempArray[i]
					.indexOf(".") + 1));
			if (i != tempArray.length - 1)
				resultBuffer.append(",");
		}
		if (logger.isDebugEnabled()) {
			logger.debug("fieldClauseWithoutPrefix is :"
					+ resultBuffer.toString());
		}
		return resultBuffer.toString();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -