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;
}
}