方法如下:
public List getList(){
return (List ) getHibernateTemplate().execute(
new HibernateCallback() {
public List doInHibernate(final Session s)
throws HibernateException, SQLException {
StringBuffer sb = new StringBuffer();
Query query = s.createSQLQuery(sb.toString());//<STRONG>执行普通sql</STRONG>
Query query = s.createQuery(sb.toString());// <STRONG>执行hql </STRONG>
List list = query.list();
return list ;
}
});
}
自己获取session处理。
获取session的两种方式:this.getSession();和this.getHibernateTemplate().getSessionFactory().openSession();
获取session以后再createQuery操作就一样了。但是这种做法,是需要自己去手动关闭session的。所以你需要配置openSessioninview
分享到:
相关推荐
`getHibernateTemplate()`是Spring框架与Hibernate集成时提供的一个便捷方法,它封装了对Hibernate Session的操作,使得在Service或DAO层进行数据库交互变得更加简单。 在给定的标题和描述中,提到的是`...
`getHibernateTemplate()`方法是Spring框架提供的,用于获取`HibernateTemplate`实例的方法。该实例封装了对Hibernate Session的操作,可以方便地执行CRUD操作。 **示例代码**: ```java public class InfoDAOImpl ...
当使用Hibernate的`getHibernateTemplate().save()`方法尝试保存数据时,如果数据没有被保存到数据库,可能有以下几个原因: 1. **事务管理**:在默认情况下,Hibernate不会自动开启和提交事务。如果在代码中没有...
### Hibernate3 使用经验 #### 一、在 Hibernate 中配置参数 ...这些内容涵盖了如何在 Hibernate 中配置参数、执行 SQL 语句、获取 Session 以及如何在 DAO 层进行事务处理等方面的知识点。希望对读者有所帮助。
在上面的代码中,我们使用 `Session.createSQLQuery()` 方法创建了一个 `SQLQuery` 对象,然后使用 `addEntity()` 方法指定了查询结果的实体类型,最后使用 `list()` 方法执行查询并获取结果。 使用 ...
如使用 `session.createCriteria(Class)` 方法来创建 Criteria 实例,然后使用 `add(Criterion criterion)` 方法来添加查询条件,最后使用 `list()` 方法来获取查询结果。 Hibernate 的 Criteria 和 ...
在给定的描述中,我们看到了两种使用Hibernate的方法:通过`HibernateTemplate`和直接使用`Session`。`HibernateTemplate`是Spring框架对Hibernate的一种封装,提供了一种更简单的API来执行常见的Hibernate操作,...
在Spring框架中,HibernateTemplate提供了一种方便的方式来执行DetachedCriteria查询,通过getHibernateTemplate().findByCriteria(detachedCriteria)方法,可以轻松地根据DetachedCriteria实例执行查询并获取结果。...
- **`findAllRole`** 方法是用于从数据库中获取角色列表的具体实现,它接收一个`CriteriaQuery`对象和一个状态对象,返回一个`PageSupport`对象,其中包含了分页后的结果集。 ##### 3.2 `Delegate`层代码 ```java ...
在Java持久层框架Hibernate中,Criteria API是一种动态构建SQL查询的方法,它允许开发者在运行时构建查询,提供了更面向对象的查询方式。本篇将详细阐述Hibernate Criteria API的使用。 首先,Criteria API由...
在DAO层,我们可以继承`HibernateDaoSupport`,然后通过`getHibernateTemplate()`方法获取到`HibernateTemplate`实例,利用它来执行HQL或SQL语句。或者,直接使用`SessionFactory`创建`Session`对象进行操作。 5. ...
`queryForPage`利用`HibernateTemplate`的`executeFind`方法,通过回调接口`HibernateCallback`在Hibernate Session中执行查询并设置分页参数。`getAllRowCount`则直接通过`getHibernateTemplate().find(hql).size()...
通过Session的createCriteria()方法可以获取Criteria实例。 2. **DetachedCriteria**:这是一个离线的Criteria,可以在不使用Session的情况下创建。DetachedCriteria通过DetachedCriteria.forClass()或...
在Hibernate中,可以通过`Query`对象的`setFirstResult()`和`setMaxResults()`方法来实现分页查询。其中: - `setFirstResult(int firstResult)`:设置从第几条记录开始查询。 - `setMaxResults(int maxResults)`:...
通过对比实验可以看出,在不使用分页的情况下,使用`session.createSQLQuery`方法进行查询效率最高;而在分页查询时,`session.createQuery`的方法效率最佳。具体来说: - **`session.createQuery`**:适合于复杂的...
通过继承`HibernateDaoSupport`,`PersonDaoImpl`可以直接调用`getHibernateTemplate()`方法来获取`HibernateTemplate`实例,并利用其提供的方法进行数据操作。 #### 四、使用HibernateCallback接口 对于更复杂的...
4. 在服务层和控制层中处理分页逻辑,调用DAO方法获取数据并填充到分页类中。 5. 将分页类传递给视图层,用于展示数据。 通过这种方式,我们可以在Spring+Hibernate+Struts2的环境下轻松实现数据的分页查询,提高...
这里使用了`getHibernateTemplate()`方法,这是一个Spring提供的模板类,简化了Hibernate的操作。 2. **业务逻辑层实现**: ```java public class EmpServiceImpl implements IEmpService { private EmpDAO ...
通常,程序中采用实现HibernateCallback的匿名内部类来获取HibernateCallback的实例,方法doInHibernate()就是Spring执行的持久化操作。 24.3 Spring对Hibernate的简化 24.3.5 HibernateDaoSupport Spring为与...
通过这种方式整合Spring和Hibernate,我们可以避免直接在代码中创建SessionFactory和Session,从而减少资源泄漏的风险,同时借助Spring的事务管理能力,简化事务处理。这种整合方式使得系统更加模块化,更易于维护和...