-
-
-
- public int findCountByYear(String currYear) {
- String hqlString = "select count(*) from WaterPlan as p where p.planYear ='"+currYear+"'";
- Query query = this.getSession().createQuery(hqlString);
-
- return ((Number)query.uniqueResult()).uniqueResult();
- }
/**
* @TODO:查询某一年度的所有计划数量
*/
public int findCountByYear(String currYear) {
String hqlString = "select count(*) from WaterPlan as p where p.planYear ='"+currYear+"'";
Query query = this.getSession().createQuery(hqlString);
return ((Number)query.uniqueResult()).uniqueResult();
}
从Hibernate 3.0.x/3.1.x升级到最新的3.2版之后,3.2版的很多sql函数如count(), sum()的唯一返回值已经从Integer变为Long,如果不升级代码,会得到一个ClassCastException。
这个变化主要是为了兼容JPA,可以在hibernate.org的最新文档中找到说明。
Hibernate Team也提供了一个与原来兼容的解决方案:
- Configuration classicCfg = new Configuration();
- classicCfg.addSqlFunction( "count", new ClassicCountFunction());
- classicCfg.addSqlFunction( "avg", new ClassicAvgFunction());
- classicCfg.addSqlFunction( "sum", new ClassicSumFunction());
- SessionFactory classicSf = classicCfg.buildSessionFactory();
Configuration classicCfg = new Configuration();
classicCfg.addSqlFunction( "count", new ClassicCountFunction());
classicCfg.addSqlFunction( "avg", new ClassicAvgFunction());
classicCfg.addSqlFunction( "sum", new ClassicSumFunction());
SessionFactory classicSf = classicCfg.buildSessionFactory();
或
-
-
-
- int count = ((Number)query.uniqueResult()).intValue();
-
-
//int count = ((Integer)query.uniqueResult()).intValue();
//改成
int count = ((Number)query.uniqueResult()).intValue();
//这样就可以两个版本同时兼容.
-
-
- 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();
分享到:
相关推荐
在Hibernate中,可以使用`Criteria` API或者`HQL`(Hibernate Query Language)来实现多表联查。`Criteria` API提供了更加面向对象的查询方式,通过`createCriteria()`方法指定主表,然后使用`createAlias()`方法...
- **RIGHT JOIN:** 直接在HQL中使用`RIGHT JOIN`语法,但由于Hibernate不支持直接的`RIGHT JOIN`语法,可以使用`LEFT JOIN`加上额外的条件来模拟`RIGHT JOIN`的效果: ```java String hql = "FROM UserInfo u ...
1. **实体映射**: 在Hibernate中,Java类被映射到数据库表,对象实例对应表中的记录。通过`@Entity`注解标记实体类,`@Table`指定对应的表名,`@Id`标识主键字段。 2. **Session接口**: Hibernate的核心接口,用于...
泛型是Java SE 5.0引入的新特性,它允许在类、接口和方法中使用类型参数,从而实现更强大的类型检查和减少类型转换的冗余。 1. 泛型BaseDAO:`GenericBaseDao.java`和`GenericBaseDaoInter.java` 泛型BaseDAO的主要...
例如,如果你想要查询一个表中所有记录的总数,可以使用`COUNT`函数: ```java Query query = session.createQuery("SELECT COUNT(*) FROM EntityName"); Long totalCount = (Long) query.uniqueResult(); ``` ...
左外抓取连接是左外连接的一种特殊形式,主要用于获取左表记录的关联数据: ```hql SELECT s, c FROM Student s LEFT OUTER JOIN FETCH s.courses c; ``` 这里使用了`FETCH`关键字来立即加载关联数据。 ##### 右...
3. **获取当前页数据**:利用`countOff()`方法计算当前页的起始记录位置,然后使用Hibernate或其他数据库操作方式查询对应范围内的数据。 4. **判断页面状态**:通过`init()`方法更新页面状态,判断当前页是否为第...
【Hibernate 通用分页】 ...以上代码展示了如何在实际项目中使用`BaseDao`类实现Hibernate的分页查询。请注意,这只是一个基本示例,实际应用可能需要考虑更多细节,例如错误处理、事务管理、性能优化等。
Hibernate 是一个开源的对象关系映射 (ORM) 框架,它允许开发人员将 Java 对象映射到数据库表中的记录,从而简化了数据访问逻辑。在 Hibernate 中,执行查询操作的主要方式之一是使用 Hibernate 查询语言(HQL)。 ...
Hibernate支持COUNT、AVG、MAX、MIN和SUM等统计函数,可以用于计算总数、平均值等。 7. **缓存机制** 为了提高查询性能,Hibernate使用了二级缓存。一级缓存是Session级别的,自动管理,而二级缓存可以跨Session...
这段代码会返回 User 表中的记录总数。 1.5 **限制查询起始值和数量**: ```java String hql = "from User as user order by user.loginName"; int firstResult = 50; int maxResults = 50; Query query = session....
HQL 的基本结构类似于 SQL 的 `SELECT FROM` 结构,不同之处在于 HQL 中使用的是类名和属性名而非表名和字段名。 ##### 示例:基本查询 ```java String hql = "FROM User"; Query query = session.createQuery(hql)...
3. **分页逻辑**:根据分页参数和总数,我们可以计算出当前页的起始位置和结束位置,然后构造出对应的SQL查询语句(例如`SELECT * FROM table LIMIT start, pageSize`),在Hibernate中,这可以通过HQL(Hibernate ...
11. **SQL日期判断**:获取`tb_send`表中日期为当前日期的所有记录,可以使用如下SQL:`SELECT * FROM tb_send WHERE DATE(SendTime) = CURDATE();` 12. **复制表结构**:创建新表并复制旧表结构但不复制数据:`...
1. **getTotalCount**: 使用Hibernate查询数据库获取记录总数。 2. **getList**: 执行分页查询并返回结果集。 ```java public class Paginate extends HibernateDaoSupport implements PaginateInterface { // ...
- `count()`:计算记录数量,如`select count(*) from Student`将返回`Student`实例的总数。 - `min()`:找出最小值,如`select min(s.age) from Student as s`将返回`Student`年龄的最小值。 - `max()`:找出...
类中的方法用于获取和设置这些属性,例如`getCount()`、`setCount()`等,便于在代码中使用和传递分页参数。 2. **实现分页逻辑**: - **计算总页数**:当`count`(记录总数)和`pageSize`(每页记录数)已知时,...