分页简介
分页功能在网页中是非常常见的一个功能,其作用也就是将数据分割成多个页面来进行显示。
分页作用: 当取到的数据量达到一定的时候(数据太多),就需要使用分页来进行数据分割。
当我们不使用分页功能的时候,会面临许多的问题:
客户端的问题: 如果数据量太多,都显示在同一个页面的话,会因为页面太长严重影响到用户的体验,也不便于操作,也会出现加载太慢的问题。
服务端的问题: 如果数据量太多,可能会造成内存溢出,而且一次请求携带的数据太多,对服务器的性能也是一个考验。
带有模糊查询的分页方法,每页最多展示5条数据
/**
* @param pageindex 页数
* @param str 查询关键字
* @return 查询结果
* @throws SQLException
*/
public List<News> paging(int pageindex,String str) throws SQLException{
list=new ArrayList<>();
int pageSize=5;
int start=(pageindex-1)*pageSize;
con=DBhelper.getCon();
sql="select * from news where title like '%"+str+"%' and nid limit ?,?";
ps=con.prepareStatement(sql);
ps.setObject(1, start);
ps.setObject(2, pageSize);
rs=ps.executeQuery();
while(rs.next()) {
news=new News(rs.getInt("nid"),rs.getInt("sid"),rs.getString("title"),rs.getString("author"),
rs.getString("summary"),rs.getString("content"),rs.getString("content"),rs.getString("addtime"));
list.add(news);
}
DBhelper.colseObj(con, ps, rs);
return list;
}
求页码数
/**
* 求 news表里面数据可展示的总页码
* @return
* @throws Exception
*/
public int getMaxPage(String str) throws Exception{
con = DBHelper.getCon();
sql = "select count(0) from news where sid like '%"+str+"%'";
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
if(rs.next()) {
maxPage = rs.getInt(1) / 5;
if(rs.getInt(1) % 5 != 0) {
maxPage ++;
}
}
DBHelper.closeObj(con, ps, rs);
return maxPage;
}
```