Java分页问题打印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;我认为复制我所有的代码没有任何意义,因为从数据库中读取是有效的。。我只想在每一页上都有一个元素,并拥有与找到的元素一样多的页面。所以我用

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> ");

它还打印其他元素。因此,请帮助如何做到拥有尽可能多的页面元素,并且每页有一个元素。

我是否需要进行无限制的选择,并使用由此获得的结果集的大小,有更好的解决方案吗?

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);
}

相关内容

  • 没有找到相关文章