mysql: select*from A limit startRow,endRow oracle: select b.*from (select a.*,rownum as linenum from (select*from A) a where rownum <= endRow) b where linenum >= startRow
注意:
mysql
--startRow:开始的记录数
endRow: 每页的记录数
oracle 真分页,oracle语句很有用
2、
ibatis分页处理的函数如下
privatevoid handleResults(RequestScope request, ResultSet rs, int skipResults, int maxResults, RowHandlerCallback callback) throws SQLException { try{ request.setResultSet(rs); ResultMap resultMap = request.getResultMap(); if (resultMap !=null) { // Skip Results if (rs.getType() != ResultSet.TYPE_FORWARD_ONLY) { if (skipResults >0) { rs.absolute(skipResults); } }else{ for (int i =0; i < skipResults; i++) { if (!rs.next()) { return; } } } // Get Results int resultsFetched =0; while ((maxResults == SqlExecutor.NO_MAXIMUM_RESULTS || resultsFetched < maxResults) && rs.next()) { Object[] columnValues = resultMap.resolveSubMap(request, rs).getResults(request, rs); callback.handleResultObject(request, columnValues, rs); resultsFetched++; } } }finally{ request.setResultSet(null); } }
1、数据库真分页所以分页还是要考虑采用直接操作sql语句来完成。当然小批量的可以采用iBatis的分页模式。一般分页的sql语句与数据库的具体实现有关 mysql: select * from A limit startRow,endRow oracle: select b.* from (select a.*,rownum as linenum from (selec