📄 pageoracle.java
字号:
package com.ztes.commons.dbo.pagination.impl;
import com.ztes.commons.dbo.pagination.Page;
import com.ztes.commons.dbo.pagination.AbstractPage;
/**
* Oracle数据库的分页,借助rownum实现。
* 一个比较典型的分页sql如同:
* <pre>
* SELECT * FROM
(
SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
WHERE ROWNUM <= 40
)
WHERE RN >= 21
其中SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。
* </pre>
*
* @author tiannet(曾次清)
*/
public class PageOracle extends AbstractPage implements Page {
/**
* 返回分页sql语句。
* 一个比较典型的分页sql如同:
* <pre>
* SELECT * FROM
(
SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
WHERE ROWNUM <= 40
)
WHERE RN >= 21
其中SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。
* </pre>
* @param start 获取记录的开始位置,从零开始计。
* @param size 获取记录的大小。
* @return 分页sql语句。
*/
public String getPageSql(int start, int size) {
StringBuffer sql = new StringBuffer();
sql.append(" SELECT * FROM ");
sql.append(" ( ");
sql.append(" SELECT A.*, rownum as my_rownum FROM ");
sql.append(" ( " + super.getQuerySql() + " ) A ");
sql.append(" WHERE rownum <= "+ (start + size));
sql.append(" ) ");
sql.append(" WHERE my_rownum > " + start);
return sql.toString();
}//~ getPageSql
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -