当初看到这个代码没有深入研究,为方便用了一简便的servlet端分页,导致很严重后果.
仅记录后台代码于此:
public class PageDao {
public PageDao() {
}
public List pageData(int currentPage, int pageCount) {
List results = new ArrayList();
String tableName = "demo_userinfo_pages";
ResultSet rs = null;
StringBuffer sql = new StringBuffer("");
Statement stmt = null;
Connection conn = null;
try {
int count = recordCount();
int totalPage = (int) Math.ceil(1.0 * count / pageCount);
int start = 0;
int end = 0;
if (currentPage <= 0) {
currentPage = 1;
start = 1;
end = currentPage * pageCount;
}
if (currentPage > totalPage) {
currentPage = totalPage;
return results;
}
if ((currentPage - 1) * pageCount >= 0) {
start = (currentPage - 1) * pageCount + 1;
end = currentPage * pageCount;
}
sql.append("SELECT * ").append("FROM (SELECT a.*,ROWNUM rn ")
.append(" FROM (SELECT * ").append(" FROM " + tableName)
.append(" ORDER BY asc) a").append(" )").append(
" WHERE rn >= " + start + " and rn <=" + end);
conn = DBManager.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql.toString());
while (rs.next()) {
UserForm bean = new UserForm();