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();
分享到:
相关推荐
- **使用双向一对多关联**:减少不必要的查询。 - **合理配置缓存策略**:根据实际情况选择合适的缓存策略。 - **使用 Set 和 Bag**:提高集合类型的性能。 - **继承策略**:使用显式多态减少数据库查询次数。 - **...
- `count()`: 统计实体数量。 - `query(HqlQuery query)`: 使用HQL进行查询。 - `query(Criteria criteria)`: 使用Criteria API进行查询。 **5. Hibernate 3 版本特点** Hibernate 3相较于之前的版本,引入了一些...
- 设置每页记录数:`setMaxResults(count)`。 #### 七、基本映射标签和属性 - **实体类映射文件**:`.hbm.xml`文件中的常用标签。 - `<class>`:定义实体类。 - `<id>`:标识主键。 - `<property>`:映射实体...
- **使用双向一对多关联:** 避免单向一对多带来的问题。 - **灵活使用单向一对多关联:** 在某些场景下单向关联更为简单。 - **替代一对一关联:** 使用多对一替代一对一以减少复杂度。 - **配置对象缓存:** 避免...
3. **Count查询**:如果需要显示总记录数,可以先进行一次Count查询,但要注意避免全表扫描,可以使用`Criteria.setProjection(Projections.rowCount())`。 4. **懒加载**:对于关联的对象,可以采用懒加载策略,...
Hibernate是Java领域中一款著名的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库编程。在这个“hibernate 3.5.5 常用jar包”中,包含了运行和开发基于Hibernate 3.5.5...
1. **Hibernate的数学函数**:如`max()`, `min()`, `sum()`, `avg()`和`count()`,它们用于对数据进行聚合操作,例如找出最大值、最小值、总和或平均值。 2. **字符串函数**:如`concat()`, `lower()`, `upper()`和...
本篇文章将详细讲解如何配置Hibernate框架以使用Proxool连接池。 首先,我们需要了解Hibernate和Proxool的基本概念。Hibernate是一个流行的Java ORM(对象关系映射)框架,它简化了Java应用与数据库之间的交互,...
### Hibernate 实现分页查询...此外,在编写分页查询逻辑时,还需注意SQL注入等安全问题,合理使用参数化查询等方式可以有效避免这些问题的发生。 以上就是关于Hibernate实现分页查询的具体介绍,希望对大家有所帮助。
5. **使用预编译的SQL(Hibernate Named Queries)**: 提高查询效率,减少SQL注入风险。 通过深入理解和熟练运用Hibernate查询机制,可以大大提高Java应用程序的数据库操作效率和代码可维护性。无论是HQL还是...
**使用条件**: - 数据不会被第三方修改。 - 数据大小在可接受范围内。 - 数据更新频率较低。 - 同一数据被系统频繁使用。 - 非关键数据。 #### 五、Hibernate 的查询方式 **查询方式**: 1. **SQL 查询**:直接...
有时候,我们可能需要执行一些更复杂的SQL查询,这时可以使用Hibernate的Native SQL查询功能。示例如下: ```java String sql = "SELECT b.name, COUNT(a.fee), MIN(a.chargeBeginTime), MAX(a.chargeEndTime) " + ...
通过调用setGroupBy()方法进行分组,使用Projections类的聚合函数,如count(), max(), min()等。 6. **关联查询(Joins)** Hibernate Criteria API允许进行关联查询,包括内连接、外连接等。通过addJoin()或...
**Hibernate Proxool...正确配置和使用Hibernate Proxool连接池对于优化Java应用程序的性能至关重要。理解并掌握Proxool的各项配置参数,以及在遇到问题时能及时诊断和解决,能够帮助我们构建更加稳定和高效的系统。
3. **聚合函数**: 可以使用`count()`, `sum()`, `max()`, `min()`, `avg()`等聚合函数进行统计分析。 4. **关联查询**: 支持`join`操作,处理多对一、一对多、多对多的关系。 通过本讲义的学习,开发者将能够熟练...
**Hibernate查询方式详解** 在Java世界中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本教程将深入探讨Hibernate 3.x版本中的查询方式,包括基本查询、HQL(Hibernate Query ...
5. **使用 Bag 作为一对多集合类型,使用 Set 作为多对多集合类型。** 6. **使用显式多态代替抽象继承。** 7. **合理设计表结构,减少字段数量,增加表关联。** #### 7. Struts 工作机制及其重要性 **工作流程:**...
- 使用`group by`进行分组查询,如`select count(*), productname from Product group by productname order by productname`,可以计算每个产品名的数量。 - 在配置文件中预定义命名查询,如在`.hbm.xml`文件中的...