/** * 根据数据库方言,生成特定的分页sql * * @param sql * @param page * @return */ private String generatePageSql(String sql, Pagination page) { if (page != null && Tools.notEmpty(dialect)) { StringBuffer pageSql = new StringBuffer(); if ("mysql".equals(dialect)) { pageSql.append(sql); pageSql.append(" limit " + page.getStartIndex() + "," + page.getNumPerPage()); } else if ("oracle".equals(dialect)) { pageSql.append("select * from (select tmp_tb.*,ROWNUM row_id from ("); pageSql.append(sql); if ("mysql".equals(dialect)) { pageSql.append(") as tmp_tb where ROWNUM<="); } else if ("oracle".equals(dialect)) { pageSql.append(") tmp_tb where ROWNUM<="); } pageSql.append(page.getStartIndex() + page.getNumPerPage()); pageSql.append(") where row_id>"); pageSql.append(page.getStartIndex()); } return pageSql.toString(); } else { return sql; } }