Java 分页问题打印 Printwriter
Java pagination issue print Printwriter
我尝试使用 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;
我认为复制我的所有代码没有任何意义,因为从数据库读取工作。我只想在每个页面上有 1 个元素,并且拥有与找到的元素一样多的页面。
所以我用
String query = "select * from tabL where name like CONCAT( '%',?,'%') limit "
+ (start-1)+","+total;
开始时为 1,总计为 1..
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> ");
它也打印其他元素。
因此,请帮助如何才能找到与找到的元素一样多的页面,并且每页 1 个元素。
我是否需要一个没有限制的 select 并使用由此获得的结果集的大小,是否有更好的解决方案?
PS: 有人请解释一下如果我将限制设置为 1,1 ResulSet 的大小为 1 但它至少可以打印 3 个元素。
即使限制为 1,我也至少需要知道检索到的元素的确切数量。
谢谢。
要查找总计数,您可以使用计数查询:
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);
}
我尝试使用 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;
我认为复制我的所有代码没有任何意义,因为从数据库读取工作。我只想在每个页面上有 1 个元素,并且拥有与找到的元素一样多的页面。
所以我用
String query = "select * from tabL where name like CONCAT( '%',?,'%') limit "
+ (start-1)+","+total;
开始时为 1,总计为 1.. 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> ");
它也打印其他元素。 因此,请帮助如何才能找到与找到的元素一样多的页面,并且每页 1 个元素。
我是否需要一个没有限制的 select 并使用由此获得的结果集的大小,是否有更好的解决方案?
PS: 有人请解释一下如果我将限制设置为 1,1 ResulSet 的大小为 1 但它至少可以打印 3 个元素。
即使限制为 1,我也至少需要知道检索到的元素的确切数量。
谢谢。
要查找总计数,您可以使用计数查询:
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);
}