实现分页查询

该段代码展示了如何利用Hibernate的SessionFactory和Session进行数据库的分页查询操作。首先通过SessionFactory获取Session,然后开启事务,执行SQL获取总记录数并计算总页数。接着,根据页码设置查询范围,循环遍历每一页,打印出对应页的数据。最后,提交事务并关闭Session。此代码适用于需要进行数据库分页展示的场景。
摘要由CSDN通过智能技术生成
public void QueryByPage(int pageSize) {
					SessionFactory sf = null;
					Session session = null;
					Transaction ts = null;
 
					try {
						sf = HibernateUtil.getSessionFactory();// SessionFactory单态模式
						session = sf.getCurrentSession(); // 保证每个读写线程有唯一的session实例
						ts = session.beginTransaction();
						//统计查询:
						Query query = session.createQuery("select count(*) from User u ");
						Number cnts = (Number) query.uniqueResult();
 
						int UserCount = cnts.intValue();//得到数量
						int pageCount = 0;
						pageCount = UserCount / pageSize;
						if (UserCount % pageSize != 0) {
							pageCount++;
						}
						Query query1 = session.createQuery("from User u");
						for (int i = 0; i < pageCount; i++) {
							System.out.println("第" + i + "页");//可以根据要第几页来查询出来对应的记录,按页去查询
							query1.setFirstResult(i * pageSize);
							query1.setMaxResults(pageSize);
							List<User> us = query1.list();
							for (User u : us) {
								System.out.println(u.toString());
							}
						}
 
						ts.commit();
					} catch (HibernateException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
						if (ts != null) {
							ts.rollback();
						}
					} finally {
						// 关闭session
						// session.close();
						// sf.close();
					}
				}
5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值