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

时间:2009-07-27 01:58:59

标签: java jsp pagination

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

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

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

有两种基本方法。

效率最高是在数据库中进行分页。你需要实现这样的东西:

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

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

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

您还希望确保查询相对“稳定” - 当一次又一次地调用时,结果将大致相同。最简单的方法是确保你对结果进行排序 - 如论坛软件的主题日期或类似的东西。否则项目将“跳”。

第二种方法是一次性加载所有内容并将其存储在某个缓存中,然后从那里显示。问题是它非常浪费,特别是如果每​​个访客都是独一无二的,所以如果你试图这样做,你需要小心不要浪费所有的记忆。

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

看一下这个链接。

模式(你需要知道):

Value List Handler Pattern.

实现(你可以使用它):

ValueList: An implementation of Value List Handler Pattern.

希望这会对你有所帮助。

相关问题