Hibernate分頁小結

通常使用的Hibernate通常是三種:hql查詢,QBC查詢和QBE查詢:
1、QBE(Qurey By Example)檢索方式

QBE是最簡單的,但是功能也是最弱的,QBE的功能不是特別強大,僅在某些場合下有用。一個典型的使用場合就是在查詢窗口中讓用戶輸入一系列的查詢條件,然後返回匹配的對象。QBE只支持=和like比較運算符,無法不大區間值,及其或的匹配。在這種情況下,還是採用HQL檢索方式或QBC檢索方式。

	/**
	 * @function 根據傳遞過來的Object,分頁顯示在數據庫中與其匹配的記錄
	 * @param pageNo
	 *            當前頁數
	 * @param pageSize
	 *            每頁顯示的記錄數
	 * @param object
	 *            將查詢條件封裝爲Object
	 * @return 將查詢結果封裝爲Pager返回
	 */
	public Pager findPageByExample(int pageNo, int pageSize, Object object)
	{
		Pager pager = null;
		try
		{
			Criteria criteria = this.getSession().createCriteria(
					Class.forName(this.getEntity()));

			if (object != null)
			{
				criteria.add(Example.create(object).enableLike());
			}

			// 獲取根據條件分頁查詢的總行數
			int rowCount = (Integer) criteria.setProjection(
					Projections.rowCount()).uniqueResult();
			criteria.setProjection(null);

			criteria.setFirstResult((pageNo - 1) * pageSize);
			criteria.setMaxResults(pageSize);

			List result = criteria.list();

			pager = new Pager(pageSize, pageNo, rowCount, result);

		} catch (RuntimeException re)
		{
			throw re;
		} finally
		{
			return pager;
		}

	}



發佈了62 篇原創文章 · 獲贊 36 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章