`

hibernate doInHibernate 用法

阅读更多

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);
        }  

 

 

 

分享到:
评论

相关推荐

    hibernate执行原生sql语句

    在上面的代码中,我们使用 `HibernateCallback` 接口来执行原生 SQL 语句,该接口提供了一个 `doInHibernate()` 方法,该方法将在 Hibernate 事务中执行。我们可以在该方法中执行原生 SQL 语句,并使用 `Connection`...

    Spring/泛型Hibernate的实现

    2. **事务管理**:Spring提供了一套完整的事务管理机制,可以方便地与Hibernate结合使用。 3. **异常转换**:Spring可以将Hibernate抛出的异常转化为其自身的一致性异常体系,便于上层统一处理。 ##### 2.1 配置...

    第24次课-1 Spring与Hibernate的整合

    开发者通过HibernateCallback,可以完全使用Hibernate灵活的方式来访问数据库,解决了Spring封装Hibernate后灵活性不足的缺陷。 24.3 Spring对Hibernate的简化 24.3.4 HibernateTemplate的复杂用法 ...

    spring+hibernate详解

    `HibernateTemplate`是Spring为Hibernate提供的一个高级抽象层,它提供了一系列封装好的方法来简化Hibernate的使用,例如`save(Object entity)`、`update(Object entity)`、`delete(Object entity)`等。这些方法简化...

    Spring整合hibernate

    例如,你可以通过实现HibernateCallback接口的doInHibernate方法,传入一个回调函数,执行特定的Hibernate操作。此外,HibernateTemplate会自动处理HibernateException,并将其转化为Spring的DataAccessException,...

    struts+spring+hibernate通用分页方法

    - 使用Hibernate提供的`HibernateTemplate`来执行数据库操作,包括获取总记录数和设置分页参数。 - 根据计算出的起始位置和每页记录数执行查询,获取分页后的数据列表,并将其封装到`PageSupport`对象中返回。 ####...

    Hibernate和Spring集成分页方法

    ### Hibernate与Spring集成分页方法详解 在Java企业级应用开发中,经常需要处理大量数据的展示和查询问题。为了提高用户体验并优化服务器资源利用,分页查询是一种非常实用的技术手段。本文将详细介绍如何在...

    hibernate分页技术.doc

    在回调方法`doInHibernate`中,通过`createQuery()`创建Query对象,然后使用`setFirstResult()`设置起始位置(即偏移量),`setMaxResults()`设置每页条目数量,最后执行`list()`获取结果集。 2. `findByPage...

    1、hibernate调用存储过程1

    在提供的代码示例中,`doInHibernate` 方法展示了如何使用Hibernate调用不带参数返回值的存储过程。首先,我们需要创建一个`Session`对象,然后开始一个事务。接下来,通过`session.createSQLQuery`创建一个SQL查询...

    HibernateS整合pring

    此外,`HibernateTemplate`还支持`HibernateCallback`接口,允许开发者在回调方法`doInHibernate(Session session)`中使用原生的Hibernate API,以应对更复杂的数据访问需求。这种方法确保了灵活性,即使在Spring的...

    基于hibernate实现的分页技术

    在Hibernate中,实现分页主要通过`setMaxResults()`和`setFirstResult()`这两个方法。其中: - `setMaxResults(int maxResult)`:设置每页显示的数据量。 - `setFirstResult(int index)`:设置从哪条记录开始查询。...

    Struts+Spring+Hibernate 简单例子开发

    - **DAO层**:`UserDao`接口定义了获取用户信息的方法,而`UserDaoImpl`类实现了这些方法,并通过Hibernate的映射来查询数据库。 ```java public interface UserDao { List<User> getName(String id); } ...

    HibernateTemplate类的使用

    需要注意的是,直接在`doInHibernate`方法中使用`Session`的事务管理方法可能会导致预期之外的结果,因为这些操作可能与`HibernateTemplate`的默认行为相冲突。 #### 六、Hibernate事务机制探究 为了更好地理解上述...

    Hibernate分页查询

    在`MemberDaoImpl`实现类中,我们使用`HibernateDaoSupport`作为基类,这个类是Spring提供的,为Hibernate提供了便捷的支持。`queryForPage`方法通过`HibernateTemplate`的`executeFind`方法执行HQL查询并进行分页,...

    struts+hibernate+spring

    在业务逻辑层和服务层中,我们可以使用DAO层提供的方法来获取分页数据,并填充到`PageBean`对象中。例如,在服务层中可以实现以下逻辑: ```java public class MemberService { private MemberDao memberDao; ...

    Struts2+Hibernate实现数据分页的方法

    在Hibernate中,我们可以利用`Session`对象的`createQuery()`方法创建HQL(Hibernate Query Language)查询,然后通过`setFirstResult()`和`setMaxResults()`方法设置查询的起始位置(即偏移量offset)和每页记录数...

    基于hibernate实现的分页技术实例分析

    在Hibernate中,我们可以使用`Query`对象的`setMaxResults()`和`setFirstResult()`方法来完成这个任务。`setMaxResults()`定义了每页显示的数据量,而`setFirstResult()`则指定了从哪一条记录开始获取数据。 以下是...

    HibernateTemplate原理代码-模版设计模式

    在这样的背景下,HibernateTemplate应运而生,它采用模板设计模式,通过提供一系列通用的数据库操作方法,简化了Hibernate的使用方式,使得开发者能够更加专注于业务逻辑的实现。 #### 二、模板设计模式简介 模板...

    HibernateTemplate的方法使用

    ### HibernateTemplate 的方法使用 #### 一、简介与配置方式 **HibernateTemplate** 是 Spring 框架中用于简化 Hibernate 使用的一个工具类。它通过 AOP(面向切面编程)的思想,封装了大量的 CRUD(创建、读取、...

    Struts2+Hibernate实现数据分页的方法.docx

    这包括在Hibernate中编写分页查询方法,Action中调用这些方法并处理分页逻辑,配置Struts2的Action映射,以及在JSP页面上展示分页信息和数据。这样的分页方式既简单又高效,适用于大多数Web应用的需求。

Global site tag (gtag.js) - Google Analytics