我尝试使用PrintWriter在Java中进行分页。我用它作为模型:https://www.javatpoint.com/pagination-in-servlet。正如您在示例中所看到的,代码是为了处理每个页面3页和5个元素而完成的。
out.print("<a href='ViewServlet?page=1'>1</a> ");
out.print("<a href='ViewServlet?page=2'>2</a> ");
out.print("<a href='ViewServlet?page=3'>3</a> ");int total=5;我不认为复制我所有的代码是没有意义的,因为从数据库中读取代码是可行的。我只想在每个页面上有一个元素,并且有和找到的元素一样多的页面。所以我用
String query = "select * from tabL where name like CONCAT( '%',?,'%') limit "
+ (start-1)+","+total;一次开始,一次全面..。ResulSet的尺寸为1,但如果我使用这个
out.print("<a href='ViewServlet?page=1'>1</a> ");
out.print("<a href='ViewServlet?page=2'>2</a> ");
out.print("<a href='ViewServlet?page=3'>3</a> ");它还打印其他元素。因此,请帮助如何做,有尽可能多的页面,元素被找到,每个页面一个元素。
我是否需要一个无限制的选择,并使用由此获得的结果集的大小,有更好的解决方案吗?
PS:,有人请解释一下,如果我给1,1的限制,ResulSet有1,但它至少可以打印3个元素。
我至少需要知道被检索到的元素的确切数量,即使有限制1。
谢谢。
发布于 2021-05-29 12:03:32
要查找总计数,可以使用计数查询:
String countQuery = "select count(*) from tabL where name like CONCAT( '%',?,'%')";当您使用与数据查询相同的参数执行此查询时,您将得到一个带有一行和一列的ResultSet。
你可以用
Connection con = ...; // you probably already have a Connection
PreparedStatement ps = con.prepareStatement(countQuery);
ps.setString(1, name); // the name pattern that you're searching for
ResultSet rs = ps.executeQuery();
int count = 0;
if (rs.next()) {
count = rs.getInt(1);
}https://stackoverflow.com/questions/67748851
复制相似问题