• Hibernate count方法:返回某个属性的数目

    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

更多...

加载中...