`

Hibernate 如何使用count(*)

阅读更多
public int getCount(String emailGroupId, String emailBatchId)
            throws HibernateException {

        Session session = HibernateUtil.currentSession();
        Transaction tx = session.beginTransaction();

        String hql = "select count(*) from EmailSendInfo where email_group_id = :emailGroupId and batch_id = :batchId";
        Query query = session.createQuery(hql);

        query.setString("emailGroupId", emailGroupId);
        query.setString("batchId", emailBatchId);
        /*
         * for (Iterator it = query.iterate(); it.hasNext();) { return
         * ((Integer) it.next()).intValue(); }
         */
        try {
            return ((Integer) query.iterate().next()).intValue();
        } catch (Exception e) {
            throw new HibernateException("");
        } finally {
            tx.commit();
            HibernateUtil.closeSession();
        }
    }



Strings + Hibernate:
//第一种方法:
  String hql = "select count(*) from User as user";
  Integer count = (Integer)getHibernateTemplate().find(hql).listIterator().next();
  return count.intValue();

//第二种方法:
 String hql = "select count(*) from User as user";
  return ((Integer)getHibernateTemplate().iterate(hql).next()).intValue();

//第三种方法:
 String hql = "select count(*) from User as user";
 Query query =  getHibernateTemplate().createQuery( getSession(),hql);
 return ((Integer)query.uniqueResult()).intValue(); 
分享到:
评论

相关推荐

    struts+spring+hibernate笔试面试常见问题

    - **使用双向一对多关联**:减少不必要的查询。 - **合理配置缓存策略**:根据实际情况选择合适的缓存策略。 - **使用 Set 和 Bag**:提高集合类型的性能。 - **继承策略**:使用显式多态减少数据库查询次数。 - **...

    hibernate通用dao

    - `count()`: 统计实体数量。 - `query(HqlQuery query)`: 使用HQL进行查询。 - `query(Criteria criteria)`: 使用Criteria API进行查询。 **5. Hibernate 3 版本特点** Hibernate 3相较于之前的版本,引入了一些...

    Hibernate课程大纲

    - 设置每页记录数:`setMaxResults(count)`。 #### 七、基本映射标签和属性 - **实体类映射文件**:`.hbm.xml`文件中的常用标签。 - `<class>`:定义实体类。 - `<id>`:标识主键。 - `<property>`:映射实体...

    Spring,hibernate,struts的面试笔试题.doc

    - **使用双向一对多关联:** 避免单向一对多带来的问题。 - **灵活使用单向一对多关联:** 在某些场景下单向关联更为简单。 - **替代一对一关联:** 使用多对一替代一对一以减少复杂度。 - **配置对象缓存:** 避免...

    hibernate商品分页展示

    3. **Count查询**:如果需要显示总记录数,可以先进行一次Count查询,但要注意避免全表扫描,可以使用`Criteria.setProjection(Projections.rowCount())`。 4. **懒加载**:对于关联的对象,可以采用懒加载策略,...

    hibernate 3.5.5 常用jar包

    Hibernate是Java领域中一款著名的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库编程。在这个“hibernate 3.5.5 常用jar包”中,包含了运行和开发基于Hibernate 3.5.5...

    配置Hibernate使用Proxool连接池

    本篇文章将详细讲解如何配置Hibernate框架以使用Proxool连接池。 首先,我们需要了解Hibernate和Proxool的基本概念。Hibernate是一个流行的Java ORM(对象关系映射)框架,它简化了Java应用与数据库之间的交互,...

    hibernate实现分页查询

    ### Hibernate 实现分页查询...此外,在编写分页查询逻辑时,还需注意SQL注入等安全问题,合理使用参数化查询等方式可以有效避免这些问题的发生。 以上就是关于Hibernate实现分页查询的具体介绍,希望对大家有所帮助。

    hibernate查询

    5. **使用预编译的SQL(Hibernate Named Queries)**: 提高查询效率,减少SQL注入风险。 通过深入理解和熟练运用Hibernate查询机制,可以大大提高Java应用程序的数据库操作效率和代码可维护性。无论是HQL还是...

    Hibernate 函数 ,子查询 和原生SQL查询

    1. **Hibernate的数学函数**:如`max()`, `min()`, `sum()`, `avg()`和`count()`,它们用于对数据进行聚合操作,例如找出最大值、最小值、总和或平均值。 2. **字符串函数**:如`concat()`, `lower()`, `upper()`和...

    struts+spring+Hibernate

    **使用条件**: - 数据不会被第三方修改。 - 数据大小在可接受范围内。 - 数据更新频率较低。 - 同一数据被系统频繁使用。 - 非关键数据。 #### 五、Hibernate 的查询方式 **查询方式**: 1. **SQL 查询**:直接...

    hibernate多表联合查询

    有时候,我们可能需要执行一些更复杂的SQL查询,这时可以使用Hibernate的Native SQL查询功能。示例如下: ```java String sql = "SELECT b.name, COUNT(a.fee), MIN(a.chargeBeginTime), MAX(a.chargeEndTime) " + ...

    Criteria hibernate

    通过调用setGroupBy()方法进行分组,使用Projections类的聚合函数,如count(), max(), min()等。 6. **关联查询(Joins)** Hibernate Criteria API允许进行关联查询,包括内连接、外连接等。通过addJoin()或...

    Hibernate Proxool连接池配置总结及常遇问题

    **Hibernate Proxool...正确配置和使用Hibernate Proxool连接池对于优化Java应用程序的性能至关重要。理解并掌握Proxool的各项配置参数,以及在遇到问题时能及时诊断和解决,能够帮助我们构建更加稳定和高效的系统。

    hibernate学习讲义.rar

    3. **聚合函数**: 可以使用`count()`, `sum()`, `max()`, `min()`, `avg()`等聚合函数进行统计分析。 4. **关联查询**: 支持`join`操作,处理多对一、一对多、多对多的关系。 通过本讲义的学习,开发者将能够熟练...

    Hibernate查询方式代码示例

    **Hibernate查询方式详解** 在Java世界中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本教程将深入探讨Hibernate 3.x版本中的查询方式,包括基本查询、HQL(Hibernate Query ...

    2012年最权威,最完整SSH面试题(Struts+Spring+Hibernate面试题问答23题,选择30题) 问答23题,选择30题(附答案)

    5. **使用 Bag 作为一对多集合类型,使用 Set 作为多对多集合类型。** 6. **使用显式多态代替抽象继承。** 7. **合理设计表结构,减少字段数量,增加表关联。** #### 7. Struts 工作机制及其重要性 **工作流程:**...

    hibernate面试题.doc

    - 使用`group by`进行分组查询,如`select count(*), productname from Product group by productname order by productname`,可以计算每个产品名的数量。 - 在配置文件中预定义命名查询,如在`.hbm.xml`文件中的...

Global site tag (gtag.js) - Google Analytics