1:executeFind
public List findRowList(final String queryString, final int rows) {
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query q = session.createQuery(queryString);
q.setFirstResult(0);
q.setMaxResults(rows);
List list = q.list();
if (list == null) {
list = Collections.EMPTY_LIST;
}
return list;
}
});
}
2: protected Integer queryCount(final QueryCondition condition) throws ScriptException {
try {
return (Integer)getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query q =createQuery(session,condition);
List list = q.list();
if (list == null) {
return new Integer(0);
}else{
return (Integer)list.get(0);
}
}
});
} catch (Exception e) {
throw new ScriptException(e);
}
}
3:try {
return (DMTask) getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
DMTask t = null;
Query q = session.createQuery(query)
.setFirstResult(0)
.setMaxResults(1);
List result = q.list();
if (result != null && result.size() >0) {
t = (DMTask) result.get(0);
}
return t;
}
});
} catch (DataAccessException e) {
throw new DAOException(e);
}
分享到:
相关推荐
在上面的代码中,我们使用 `HibernateCallback` 接口来执行原生 SQL 语句,该接口提供了一个 `doInHibernate()` 方法,该方法将在 Hibernate 事务中执行。我们可以在该方法中执行原生 SQL 语句,并使用 `Connection`...
2. **事务管理**:Spring提供了一套完整的事务管理机制,可以方便地与Hibernate结合使用。 3. **异常转换**:Spring可以将Hibernate抛出的异常转化为其自身的一致性异常体系,便于上层统一处理。 ##### 2.1 配置...
开发者通过HibernateCallback,可以完全使用Hibernate灵活的方式来访问数据库,解决了Spring封装Hibernate后灵活性不足的缺陷。 24.3 Spring对Hibernate的简化 24.3.4 HibernateTemplate的复杂用法 ...
`HibernateTemplate`是Spring为Hibernate提供的一个高级抽象层,它提供了一系列封装好的方法来简化Hibernate的使用,例如`save(Object entity)`、`update(Object entity)`、`delete(Object entity)`等。这些方法简化...
例如,你可以通过实现HibernateCallback接口的doInHibernate方法,传入一个回调函数,执行特定的Hibernate操作。此外,HibernateTemplate会自动处理HibernateException,并将其转化为Spring的DataAccessException,...
- 使用Hibernate提供的`HibernateTemplate`来执行数据库操作,包括获取总记录数和设置分页参数。 - 根据计算出的起始位置和每页记录数执行查询,获取分页后的数据列表,并将其封装到`PageSupport`对象中返回。 ####...
### Hibernate与Spring集成分页方法详解 在Java企业级应用开发中,经常需要处理大量数据的展示和查询问题。为了提高用户体验并优化服务器资源利用,分页查询是一种非常实用的技术手段。本文将详细介绍如何在...
在回调方法`doInHibernate`中,通过`createQuery()`创建Query对象,然后使用`setFirstResult()`设置起始位置(即偏移量),`setMaxResults()`设置每页条目数量,最后执行`list()`获取结果集。 2. `findByPage...
在提供的代码示例中,`doInHibernate` 方法展示了如何使用Hibernate调用不带参数返回值的存储过程。首先,我们需要创建一个`Session`对象,然后开始一个事务。接下来,通过`session.createSQLQuery`创建一个SQL查询...
此外,`HibernateTemplate`还支持`HibernateCallback`接口,允许开发者在回调方法`doInHibernate(Session session)`中使用原生的Hibernate API,以应对更复杂的数据访问需求。这种方法确保了灵活性,即使在Spring的...
在Hibernate中,实现分页主要通过`setMaxResults()`和`setFirstResult()`这两个方法。其中: - `setMaxResults(int maxResult)`:设置每页显示的数据量。 - `setFirstResult(int index)`:设置从哪条记录开始查询。...
- **DAO层**:`UserDao`接口定义了获取用户信息的方法,而`UserDaoImpl`类实现了这些方法,并通过Hibernate的映射来查询数据库。 ```java public interface UserDao { List<User> getName(String id); } ...
需要注意的是,直接在`doInHibernate`方法中使用`Session`的事务管理方法可能会导致预期之外的结果,因为这些操作可能与`HibernateTemplate`的默认行为相冲突。 #### 六、Hibernate事务机制探究 为了更好地理解上述...
在`MemberDaoImpl`实现类中,我们使用`HibernateDaoSupport`作为基类,这个类是Spring提供的,为Hibernate提供了便捷的支持。`queryForPage`方法通过`HibernateTemplate`的`executeFind`方法执行HQL查询并进行分页,...
在业务逻辑层和服务层中,我们可以使用DAO层提供的方法来获取分页数据,并填充到`PageBean`对象中。例如,在服务层中可以实现以下逻辑: ```java public class MemberService { private MemberDao memberDao; ...
在Hibernate中,我们可以利用`Session`对象的`createQuery()`方法创建HQL(Hibernate Query Language)查询,然后通过`setFirstResult()`和`setMaxResults()`方法设置查询的起始位置(即偏移量offset)和每页记录数...
在Hibernate中,我们可以使用`Query`对象的`setMaxResults()`和`setFirstResult()`方法来完成这个任务。`setMaxResults()`定义了每页显示的数据量,而`setFirstResult()`则指定了从哪一条记录开始获取数据。 以下是...
在这样的背景下,HibernateTemplate应运而生,它采用模板设计模式,通过提供一系列通用的数据库操作方法,简化了Hibernate的使用方式,使得开发者能够更加专注于业务逻辑的实现。 #### 二、模板设计模式简介 模板...
### HibernateTemplate 的方法使用 #### 一、简介与配置方式 **HibernateTemplate** 是 Spring 框架中用于简化 Hibernate 使用的一个工具类。它通过 AOP(面向切面编程)的思想,封装了大量的 CRUD(创建、读取、...
这包括在Hibernate中编写分页查询方法,Action中调用这些方法并处理分页逻辑,配置Struts2的Action映射,以及在JSP页面上展示分页信息和数据。这样的分页方式既简单又高效,适用于大多数Web应用的需求。