📄 oraclepagesqlhelper.java
字号:
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 + -