MySql实现翻页查询功能
明确为什么要使用分页查询,因为数据庞大,查询不可能全部显示在页面上,如果全部显示在页面上,也会造成查询速度慢的情况,所以分页查询解决了①数据查询;②性能优化,等(其他问题欢迎补充)的问题。
分页查询也分为真分页和假分页
真分页基于数据库查出的数据直接分页显示,优点是改变数据库数据不会影响查询结果,缺点是速度稍慢。
假分页将所有数据查询出的数据,封装到list集合缓存中,表现层方法调用执行。由于将数据封装为集合放入了内存中,所以速度较快,但缺点是数据库改变后,会出现不匹配的情况。
两种分页各有优缺点,小伙伴们视具体情况使用吧。
狼蚁网站SEO优化要介绍的就是真分页的方法
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<UserBean> 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<StuBean> getDataList() { return dataList; } public void setDataList(List<StuBean> 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<UserBean> getUserListByStartIndex(int StartIndex) { //根据传入的limit第一位参数得到该参数后面的10条数据 List<UserBean> userList = new ArrayList<>(); UserBean userBean= null; this.setConnection(); int totalCount = 0; try { ps = con.prepareStatement("select from t_user limit ? , 10"); ps.setInt(1, StartIndex); rs = ps.executeQuery(); while (rs.next()) { userBean= new StuBean(); userBean.setId(rs.getInt("id")); userBean.setName(rs.getString("name")); stuList.add(userBean); } } catch (Exception e) { e.printStackTrace(); } finally { this.closeConnection(); } 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<UserBean> getUserListByCurrPage(int currPage) { //通过当前页计算起始索引 int StartIndex = (currPage - 1) 10; List<UserBean> userList = isd.getStuListByStartIndex(StartIndex); return userList; }
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实现翻页查询功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!
如果你觉得本文对你有帮助,欢迎网络推广网站推广转载,烦请注明出处,谢谢!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程