pages.java

来自「用hibernate实现用户权限管理模块」· Java 代码 · 共 78 行

JAVA
78
字号
package dao;

import java.util.*;

import org.hibernate.*;
import factory.*;

public class Pages {
	private int pageSize;// 页大小

	private int pageCount;// 总页数

	private int recordSize;// 记录数

	private String hql;

	public Pages(String hql, int pageSize) {
		this.hql = hql;
		this.pageSize = pageSize;
		this.setPageCount();
	}

	public int getPageCount() {
		return pageCount;
	}

	// 设置总页数。
	public void setPageCount() {
		Session session = HibernateSessionFactory.getSession();
		Transaction tx = null;
		List list = null;
		try {
			tx = session.beginTransaction();
			Query query = session.createQuery(hql);
			list = query.list();
			tx.commit();
		} catch (Exception e) {
			if (tx != null)
				tx.rollback();
			System.out.print(e);
		} finally {
			session.close();
		}
		// 设置记录数
		if (list.isEmpty())
			recordSize = 0;
		else
			recordSize = list.size();
		// 计算总页数
		pageCount = recordSize % pageSize == 0 ? recordSize / pageSize
				: (recordSize / pageSize + 1);
	}

	// 返加记录
	public List getRecord(int nowPage/* 当前页数 */) {
		if (nowPage < 0 || nowPage > pageCount)
			System.out.println("页码超出范围");
		Session session = HibernateSessionFactory.getSession();
		Transaction tx = null;
		List list = null;
		try {
			tx = session.beginTransaction();
			Query query = session.createQuery(hql);
			query.setFirstResult((nowPage - 1) * pageSize);
			query.setMaxResults(pageSize);
			list = query.list();
			tx.commit();
		} catch (Exception e) {
			if (tx != null)
				tx.rollback();
			System.out.print(e);
		} finally {
			session.close();
		}
		return list;
	}	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?