Hibernate count方法:返回某個屬性的數目

2020-07-16 10:04:58
count 方法用於返回某個屬性的數目。

語法:

count(String propertyName)

引數說明:
  • propertyName:用於指定計算某個屬性數目的屬性列的列名。

返回值:CountProjection 類的物件。CountProjection 類是 Projection 類的子類。

範例

獲取 id 列的記錄數,關鍵程式碼如下:
Criteria criteria = session.createCriteria(UserForm.class);  //定義Criteria物件
criteria.setProjection(Projections.count("id"));  //返回屬性數目
int max = (Integer)criteria.uniqueResult();  //獲取查詢結果
System.out.println("記錄數:"+max);

典型應用

count 方法用於查詢某個屬性的數目,本範例實現使用 Criteria 類的 count 方法查詢 tb_users 表的記錄數。

本範例使用 Hibernate 框架查詢資料,在使用該框架前要建立與使用者表 tb_users 對應的 JavaBean 物件 Users,以及其對映檔案 Users.hbm.xml,可參考下載的原始碼。建立 FindCount 類,在該類中定義查詢使用者表方法,關鍵程式碼如下:
public static void main(String[] args){
  Session session = null;  //宣告Session物件
  try{
    session = HibernateUtil.getSession();  //獲取Session
    session.beginTransaction();  //開啟事務
    try{
      Criteria criteria = session.createCriteria(Users.class);  //定義Criteria物件
      criteria.setProjection(Projections.count("id"));  //返回屬性數目
      int max = (Integer)criteria.uniqueResult();  //獲取查詢結果
      System.out.println("tb_users表的記錄數為:"+max);
    }catch(Exception e){
      System.out.println("查詢使用者資訊時的錯誤資訊:"+e.getMessage());
    }
    session.getTransaction().commit();  //提交事務
  }catch(Exception e){
    e.printStackTrace();
    session.getTransaction().rollback();  //出錯將回滾事務
  }finally{
    HibernateUtil.closeSession(session);  //關閉Session物件
  }
}
執行結果如下:
tb_users標的記錄數為:5