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
发表评论