这个分页首先实在数据库中存入sql语句,然后在java程序中调用
实现把sql语句存入数据库中的代码:
总的记录数
mysql> delimiter//
mysql> create procedure news()
-> begin
-> select count(*) from news;
-> end;
-> //
Query OK, 0 rows affected(如出现此句则正确)
mysql> delimiter;
当前页的信息
mysql> delimiter//
mysql> create procedure news(in nowPage int,in pageSize int)
-> begin
-> set @p = (nowPage-1)*pageSize;
-> set @q = pageSize;
-> set @COUNT_STRING = concat("SELECT * FROM news LIMIT ",@p,",",@q);
-> prepare count_string from @COUNT_STRING;
-> execute count_string;
-> deallocate prepare count_string;
-> end
-> //
Query OK, 0 rows affected
mysql> delimiter;
然后在原有代码(我的上一篇博客是实现分页的代码)的基础上作出修改即可实现:
NewsDaoImpl.java 中修改内容:
其它部分不变,然后就可以实现分页的效果了。
另外,在上篇博客中有一个错误,
在servlet层中判断从页面传来的nPage值的代码部分,在这里不仅要判断nPage是否是空值,
还要判断当点击上一页时nowPage(当前页面的值)是否小于0,因为我们知道最小的一页应该是第一页;
判断当点击下一页时nowPage是否大于countPage(最大页面值),因为我们知道最大的一页应该是最后一页。
改为: