MySql实现翻页查询功能
首先明确为什么要使用分页查询,因为数据庞大,查询不可能全部显示在页面上,如果全部显示在页面上,也会造成查询速度慢的情况,所以分页查询解决了①数据查询;②性能优化,
<p>首先明确为什么要使用分页查询,因为数据庞大,查询不可能全部显示在页面上,如果全部显示在页面上,也会造成查询速度慢的情况,所以分页查询解决了①数据查询;②性能优化,等(其他问题欢迎补充)的问题。</p>
分页查询也分为真分页和假分页:
真分页:基于数据库查出的数据直接分页显示,优点是改变数据库数据不会影响查询结果,缺点是速度稍慢。
假分页:将所有数据查询出的数据,封装到list集合缓存中,表现层方法调用执行。由于将数据封装为集合放入了内存中,所以速度较快,但缺点是数据库改变后,会出现不匹配的情况。
两种分页各有优缺点,小伙伴们视具体情况使用吧。
下面要介绍的就是真分页的方法:
1、建立JavaBean
import java.io.Serializable; /**
- 用户实体类
- @author
-
*/ public class UserBean implements Serializable { /*用户ID/ private int id; /*用户名字/ private String name; public UserBean() { } public UserBean(int id, String name) { this.id = id; this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "UserBean [id=" + id + ", name=" + name + "]"; } }
2、用于展示分页数据的JavaBean
/**
- 用于展示分页数据的JavaBean对象
- @author
-
*/ import java.util.List; public class PagenationBean { / 当前页数 */ private Integer currPage; /* 总页数 / private Integer totalPage; / 用于展示的table数据 */ private List
dataList; public Integer getCurrPage() { return currPage; } public void setCurrPage(Integer currPage) { this.currPage = currPage; } public Integer getTotalPage() { return totalPage; } public void setTotalPage(Integer totalPage) { this.totalPage = totalPage; } public List getDataList() { return dataList; } public void setDataList(List dataList) { this.dataList = dataList; } }
3、dao层实现类
@Override
public int getTotalCount() { //计算总的数据条数
this.setConnection();
int totalCount = 0;
try {
ps = con.prepareStatement("select count() from t_user");
rs = ps.executeQuery();
if (rs.next()) {
totalCount = rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
this.closeConnection();
}
return totalCount;
}
@Override
public List
return userList;
}
4、service层实现类
private IUserDao isd = new UserDaoImpl();
@Override
public int getTotalPage() {
//得到数据据条数
int totalCount = isd.getTotalCount();
//计算总页数公式
int totalPage = (totalCount + 10 -1)/10;
return totalPage;
}
@Override
public List
5、将查询出的数据放入页面展示就OK了。
以上方法中,分页显示的是10条数据,计算分析如下:
数据总条数: totalCount
每页显示条数: pageSize
总页数: totalPage
起始索引 StartIndex
当前页数 currPage
总页计算公式:
totalCount % pageSize
如果余数为0 ——> totalPage=totalCount / pageSize
如果余数不为0 ——> totalPage=totalCount / pageSize +1
得出结论:totalPage = (totalCount + pageSize -1)/pageSize
总结
以上所述是小编给大家介绍的MySql实现翻页查询功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对每日运维网站的支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!