我的网站有以下代码,我想扩展此结果,每页显示10个结果。如果有人可以帮助我,我将不胜感激。
java.sql.PreparedStatement p = servlet1.DB.query("select * from user where userdate like ");
p.setString(1,userdate);
java.sql.ResultSet r = p.executeQuery();
答案 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)
看一下这个链接。
模式(你需要知道):
实现(你可以使用它):
ValueList: An implementation of Value List Handler Pattern.
希望这会对你有所帮助。