为了账号安全,请及时绑定邮箱和手机立即绑定

问下数据库是怎么分页的,oracle和MySQL

问下数据库是怎么分页的,oracle和MySQL

fenkapian 2016-09-26 13:55:25
别两句话回答,麻烦讲详细点,要足够应付面试官
查看完整描述

2 回答

?
雪颲

TA贡献220条经验 获得超117个赞

为什么你不去看慕课网里面的分页教程呢

查看完整回答
反对 回复 2016-09-26
?
大咪

TA贡献785条经验 获得超332个赞

mysql的我比较清楚,oracle的没有实现过不太清楚,但感觉应该也差不多吧。。。


首先呢要先创建对应的PageBean实体类啦,代码如下:

public class PageBean<T> {
	
	private int currPage;//当前页数
	
	private int pageSize;//每页显示的记录数
	
	private int totalCount;//总记录数
	
	private int totalPage;//总页数
	
	private List<T> list;//每页显示的数据

	public int getCurrPage() {
		return currPage;
	}

	public void setCurrPage(int currPage) {
		this.currPage = currPage;
......各种getter and  setter 方法,这里直接省略了
}

然后是接收当前页数的代码:

	//接收当前页数
	private int currPage = 1;

	public void setCurrPage(int currPage) {
		this.currPage = currPage;
	}

然后是分页查询的方法:

    //这部分代码是比较重要的
	//分页查询部分的方法
	@Override
	public PageBean<Department> findByPage(Integer currPage) {
		
		PageBean<Department> pageBean = new PageBean<Department>();
		//封装当前页数
		pageBean.setCurrPage(currPage);
		//封装每页显示记录数
		int pageSize = 3;
		pageBean.setPageSize(pageSize);
		//封装总记录数
		int totalCount = departmentDao.findCount();
		pageBean.setTotalCount(totalCount);
		//封装总页数
		double tc = totalCount;
		Double num = Math.ceil(tc / pageSize);
		pageBean.setTotalPage(num.intValue());
		//封装每页显示的数据
		int begin = (currPage -1)* pageSize;
		List<Department> list = departmentDao.findByPage(begin, pageSize);
		pageBean.setList(list);
		
		
		return pageBean;
	}


比如接下来我要分页查询的是部门管理的分页,然后代码

/**
*分页查询部门 
*/

public List<Department> findByPage(int begin,int pageSize) {
DetachedCriteria critertia = DetachedCriteria.forClass(Department.class);
List<Department> list = this.getHibernateTemplate().findByCriteria(critertia, begin, pageSize);
return list;
}

基本上全是代码,我觉得理解了代码比我说的要容易的多吧。。自己看下吧

查看完整回答
反对 回复 2016-09-26
  • fenkapian
    fenkapian
    谢谢哥们,非常感谢!
  • 大咪
    大咪
    没关系。。。!~懂了就好啦
  • 大咪
    大咪
    其实楼下说的也对。。慕课网有一课是专门讲分页的
  • 2 回答
  • 1 关注
  • 1535 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信