📄 oracledialect.java
字号:
package com.wxd.common.paging;
import org.apache.log4j.Logger;
public class OracleDialect implements Dialect {
public static Logger log = Logger.getLogger(OracleDialect.class);
protected static final String SQL_END_DELIMITER = ";";
public String getLimitString(String sql, boolean hasOffset) {
sql = sql.trim();
boolean isForUpdate = false;
if (sql.toLowerCase().endsWith(" for update")) {
sql = sql.substring(0, sql.length() - 11);
isForUpdate = true;
}
StringBuffer pagingSelect = new StringBuffer(sql.length() + 100);
if (hasOffset)
pagingSelect
.append("select * from ( select row_.*, rownum rownum_ from ( ");
else
pagingSelect.append("select * from ( ");
pagingSelect.append(sql);
if (hasOffset)
pagingSelect.append(" ) row_ where rownum <= ?) where rownum_ > ?");
else
pagingSelect.append(" ) where rownum <= ?");
if (isForUpdate)
pagingSelect.append(" for update");
return pagingSelect.toString();
}
public String getLimitString(String sql, int pageIndex, int pageSize) {
sql = sql.trim();
int m = (pageIndex-1) * pageSize;
int n = m + pageSize;
StringBuffer pagingSelect = new StringBuffer(100);
pagingSelect
.append("select * from ( select row_.*, rownum rownum_ from ( ");
pagingSelect.append(sql);
pagingSelect.append(" ) row_ where rownum <= " + n
+ ") where rownum_ > " + m);
return pagingSelect.toString();
}
public boolean supportsLimit() {
return true;
}
public String getSequenceNextValString(String sequenceName) {
return "select " + sequenceName + ".nextval from dual";
}
public String getCreateSequenceString(String sequenceName) {
return "create sequence " + sequenceName;
}
public String getDropSequenceString(String sequenceName) {
return "drop sequence " + sequenceName;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -