Hibernate分页的设计和编码

1. 当前页码的表单参数 listuser.do?page=2

同时转换成一个 int 类型的页码变量

int currentPage = Integer.parseInt(

request.getParameter(“page”);// 当前页

2. 下一页 listuser.do?page=${currentPage+1}

上一页 listuser.do?page=${currentPage-1}

3. 一页显示多少数据

int pageSize = 5;//每页显示的数据数

4. 总页数 totalPage

1) 先从数据库取得总记录数

dao.UserDAO#getUserTotalCount()

int totalCount = executeQuery(“select count(*) from Users”);

2) 根据一页的数据类计算出总页数

    dao.UserManager#getTotalPage(int pageSize)      // 得到页面总数    int totalPageCount = ((totalCount + pageSize) - 1) / pageSize;    if(totalPageCount == 0) {      totalPageCount = 1;    }

5. 从数据库里把第currentPage页的数据读取出来(Hibernate), DAO 层的代码

dao.UserDAO#findPagedAll(int currentPage, int pageSize)

两个参数: currentPage 当前页(从1开始的)

pageSize 取多少数据

  String queryString = "from User";  Query queryObject = getSession().createQuery(queryString);  queryObject.setFirstResult((currentPage - 1) * pageSize);  queryObject.setMaxResults(pageSize);  List result = queryObject.list();

6. 在前台显示上下页的链接,并根据总页数的上下限来避免让用户跳到第-1页或者比最大页数还大的页码哪里

   1}">    [ 上一页的链接 ]    <c:if test="${currentPage     [ 上一页的文本 ]  

7. 通过 forEach 来显示数据

 ${user.id} ${user.username}

8. 通过下拉菜单来跳转页面

转到

    // 页面跳转函数  // 参数: 包含网址的选择框(SELECT元素)  function jumpPage(select) {    var newUrl = "/hibernate_page/index.jsp?page=" + select.value;    //alert(newUrl);    document.location = newUrl;  }           1页   2页   

懂得接受失败的人,就是懂得人生真谛的人,

Hibernate分页的设计和编码

相关文章:

你感兴趣的文章:

标签云: