繁体   English   中英

我想在jsp中每页显示数据库10的结果

[英]I want to display results from database 10 per page in jsp

我的网站有以下代码,我想将此结果扩展为每页显示10个结果。 如果有人可以帮助我,我将不胜感激。

java.sql.PreparedStatement p = servlet1.DB.query("select * from user where userdate like  ");
p.setString(1,userdate);
java.sql.ResultSet r = p.executeQuery();

阅读http://www.javaranch.com/journal/2008/08/pagination-using-JDBC-and-JSP.html 这里讨论分页的各种方式。 选择最适合您的情况。

有两种基本方法。

最有效的是在数据库中进行分页。 您将需要实现以下内容:

public long countMyData(..query params..);

public Object[] loadMyDataPage(..query params.., long startIndex, long count);

使用这两种方法,然后可以根据countMyData()的结果数在页面上呈现页面控件。 当用户选择一个新页面时,仅使用具有正确的startIndex和count的loadMyDataPage()才能获取该页面的数据。

您还想确保查询相对“稳定”-一次又一次地调用时,结果将基本相同。 最简单的方法是确保您对结果进行合理排序 -例如论坛软件的主题日期或类似内容。 否则,这些物品将“跳动”。

第二种方法是一次性加载所有内容并将其存储在某个缓存中,然后从那里显示。 问题是它非常浪费,特别是如果每​​个访问者唯一的话,因此,如果您尝试这样做,就必须注意不要浪费所有内存。

看一下DisplayTag 它是一个JSP标记库,它可以获取结果集并以表格形式显示它,包括分页:

<sql:query var="results">
  select * from table
</sql:query>

<display:table name="${results.rows}" pagesize="10"/>

看一下这个链接。

模式(您需要知道):

值列表处理程序模式。

实现(您可以使用此):

ValueList:“值列表处理程序模式”的实现。

希望这会帮助你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM