文章阅读
利用JDiy建立快速高效的分页查询
文章类别: JDiy框架教程  更新日期: 2013-03-07 21:07:56.0  点击次数:6136
  在前面一篇文章中,我们简要介绍了JDiy的多条记录查询,如果要从数据库中查询返回多条记录,需要使用Ls对象,下面我们再来看看如何进行分页查询吧。
  我们假设要列出user_info表中的全部的记录,以每页显示15条记录进行分页。
  首先,我们创建一个带分页信息的Args对象,如下:
Args args = new Args("user_info", null,15, 1);
  其中15表示每页需要显示的记录条数,1表示当前要显示的页码。
  然后查询返回Ls对象,如下:
Ls ls = dao.ls(args);
  就像查询多条记录那样,仍然是返回的一个Ls对象。到这一步,分页查询已经完成了!
  有没有弄错,不至于这么简单吧?JDiy要告诉您的是,
  使用JDiy框架,就是如此的简单优雅!
  为了便于向大家说明,下面我们以直接在JSP页面编写代码的方式来说明如何分页(在实际应用中,大家可以将逻辑代码从JSP页面中分离)。
我们假设以一个地址栏参数变量“page”来记录页码信息,完整的JSP页面代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="org.jdiy.core.*" %>
<html>
<head><title>JDiy demo</title></head>
<body>
<%
//Web环境下用App类来获取JDiy上下文
   App app = App.get();
//下面获取默认的数据库操作DAO
   Dao dao = app.getDao();

//下面获取post/get过来的查询参数(即取得当前页),如果取不到正确的页码信息,则默认为第1页
int currentPage = app.getInt("page",1);
//下面创建查询
   Args  args = new Args("user_info", null ,  15,  currentPage);
   Ls ls = dao.ls(args);
//下面,我们在页面上循环输出内容:
   for(Rs rs:ls.getItems()){
//为便于演示说明,这儿仅仅只输出了user_info的name字段。
         out.print( rs.get("name") + "<br />" );
   }

  //下面输出分页信息:
%>
   总共<%=ls.getPageCount()%>页 / <%=ls.getRowCount()%>条记录
   当前第<%=ls.getAbsPage()%>页
   <a href="?page=1">首页</a>
   转到:
   <%
   for(int i=1;i<=ls.getPageCount();i++){
          out.println("<a href=\"?page=" + i + "\">第" + i + "页</a>");
   }
   %>
   <a href="?page=<%=ls.getPageCount()%>">尾页</a>
</body>
</html>

朋友,看到了上面的代码,我相信您已经可以自已去创建诸如“首页”,“上一页”, “下一页”,“尾页”这些分页链接了。
[ 上一篇 利用JDiy查询返回多条记录   下一篇 通过原生SQL语句返回多条记录(带分页) ]
鄂ICP备18006629号-1 鄂ICP备18006629号-2       鄂公网安备 42050302000160号


技术支持QQ:39886616 QQ群:7759217
联系JDiy作者: ziquee java/javascript WEB编程
E-mail:ziquee@abcbcd.com http://189.cn
*尊姓大名:

*电子邮箱:

*QQ号码:

*留言内容:
提交留言
取消
loading...
注:带"*"的为必填项。请如实填写您的E-mail或QQ号码以便我们能与您取得联系。