实现Hibernate分页查询显示

本文介绍了如何使用Hibernate实现分页查询功能,包括DAO层、Service层及Control层的具体实现细节。此外,还涉及了Page类的设计,用于存储当前页、总页数等信息。

昨天实现了分页的jsp包含文件,今天完成Hibernate分页查询,并与分页文件结合,实现分页显示功能。

 

1. 实现包含的page文件,见上一篇文章

2. control DAO Service里面实现分页查询。

DAO 层面代码

 

public List<Role> getRolebyQuerybyPage(String query, int pageNo,
			int pageSize) {
		session=sessionFactory.getCurrentSession();
		Query q=session.createQuery(query);
		q.setFirstResult((pageNo-1)*pageSize);
		q.setMaxResults(pageSize);
		return q.list();
	}

Service层面代码

 

public List<Role> getRoles(int pageNo, int pageSize) {
		return userDao.getRolebyQuerybyPage("from Role", pageNo, pageSize);
	}

Control 层面代码

 

	@RequestMapping(value = "/admin_role")
	public String AdminRoleManagement(Model model, @RequestParam(defaultValue="1",required=false) String pageno, HttpSession session) {
		//每页显示数量
		int pageSize=5;
		int totalPage=2;
		totalPage=(int) Math.ceil(1.0*(userService.getAllRoles().size())/pageSize);
				
		int pageNo=Integer.parseInt(pageno);
		Pager page=(Pager) session.getAttribute("page");
		System.out.println(page);
		if(page==null){
			page=new Pager(pageNo,totalPage,"admin_role");
		}else
		{
			page.setCurrentpage(pageNo);
		}
		session.setAttribute("page", page);
		model.addAttribute("roles", userService.getRoles(pageNo, pageSize));
		return "admin/admin_role";
	}

另外我建立了一个Page类,用来存储关于当前页,总页数,链接地址信息

 

public class Pager {
	
	private int currentpage;
	private int totalpage;
	private String url;
	public int getCurrentpage() {
		return currentpage;
	}
	public void setCurrentpage(int currentpage) {
		this.currentpage = currentpage;
	}
	public int getTotalpage() {
		return totalpage;
	}
	public void setTotalpage(int totalpage) {
		this.totalpage = totalpage;
	}
	public String getUrl() {
		return url;
	}
	public void setUrl(String url) {
		this.url = url;
	}
	public Pager(int currentpage, int totalpage, String url) {
		super();
		this.currentpage = currentpage;
		this.totalpage = totalpage;
		this.url = url;
	}
}

3. 修改显示页面,完成对接

 

<jsp:include page="/resources/include/pager.jsp">
	<jsp:param value="${page.url}" name="url" />
	<jsp:param value="${page.currentpage}" name="currentpage"/>
	<jsp:param value="${page.totalpage}" name="totalpage"/>
</jsp:include>

至此,大功告成

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值