`

getHibernateTemplate用法

阅读更多

       HibernateTemplate提供的方法用来完成一些基本的操作,比如通常的增加、删除、修

 

改、查询等操作,Spring 2.0更增加对命名SQL查询的支持,也增加对分页的支持。大部分情况

 

下,使用Hibernate的常规用法,就可完成大多数DAO对象的CRUD操作。

 

             HibernateTemplate的常用方法:

 

             void delete(Object entity):删除指定持久化实例

             deleteAll(Collection entities):删除集合内全部持久化类实例

             find(String queryString):根据HQL查询字符串来返回实例集合

             findByNamedQuery(String queryName):根据命名查询返回实例集合

             get(Class entityClass, Serializable id):根据主键加载特定持久化类的实例

             save(Object entity):保存新的实例

             saveOrUpdate(Object entity):根据实例状态,选择保存或者更新

             update(Object entity):更新实例的状态,要求entity是持久状态

             setMaxResults(int maxResults):设置分页的大小

  

             HibernateTemplate的使用:


             一: 回调函数: 

            

             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());//[b]执行普通sql[/b]   

                                                Query query = s.createQuery(sb.toString());//   [b]执行hql [/b]   

                                                List list = query.list();   

                                                return list ;   

                                               }   

                       });            

             }  

             采用这种做法的好处是:不用关心事务。session的创建和销毁,一切都在程序内部完成。看看名字doInHibernate就知道好处了。不好的是程序看起来比较乱!个人认为。

 

            二: 直接调用
           
            getHibernateTemplate().find();
            List list = getHibernateTemplate().find(String sql );

            这种做法的前提是sql必须是hql ,原始sql 不能执行。 

           三:获取session处理。


           获取session的两种方式:

           this.getSession();

           this.getHibernateTemplate().getSessionFactory().openSession(); 获取session以后再createQuery操作就一样了。但是这种做法,是需要自己去手动关闭session的。所以你需要配置openSessioninview,不推荐使用! 

           总结:推荐使用回调函数。 



 

分享到:
评论

相关推荐

    getHibernateTemplate()使用方法

    整合了hibernate的getHibernateTemplate()使用方法 全面详细 带有相应的例子

    getHibernateTemplate分页-模糊查询

    getHibernateTemplate分页-模糊查询.hibernate查询以及分页查询等方法使用。

    Hibernate中Criteria的完整用法.docx

    Spring 的框架提供了getHibernateTemplate ().findByCriteria(detachedCriteria) 方法可以很方便地根据DetachedCriteria 来返回查询结 果。 DetachedCriteria 提供了 2 个静态方法 forClass(Class) 或 forEntityName...

    使用原生sql.txt

    我就是问: getHibernateTemplate()这个方法里没有执行sql语句的方法,只能用hql语句吗?

    spring 声明式事务

    1.本例子的使用了 ssh 框架 2.本例子DAO层 使用了 getHibernateTemplate 来实现数据的新增修改和删除 3.本例子使用了声明式...4.本例子提供了详细的使用方法,可以根据 readme.txt 来逐步的验证声明式事务是否起作用

    Hibernate使用技巧汇总

    HibernateTemplate对Hibernate Session操作进行了封装,而 HibernateTemplate.execute方法则是一封装机制的核心 *在spring的配置文件里,移植了整个hibernate.cfg.xml的内容。

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

    public final HibernateTemplate getHibernateTemplate() public final void setSessionFactory(SessionFactory sf) 思考题 1. Spring中是怎么对Hibernate进行支持的? 2. 如何进行Spring与Hibernate的整合?

    ssh(structs,spring,hibernate)框架中的上传下载

     其中save(FileActionForm fileForm)方法,将封装在fileForm中的上传文件保存到数据库中,这里我们使用FileActionForm作为方法入参,FileActionForm是Web层的表单数据对象,它封装了提交表单的数据。将...

    火炬博客系统5

    进行完整的事务管理和异常的包装,在此用了Spring的事物模板(TransactionTemplate)实现,可分离数据访问和事物处理,提高业务对象的可复用性,采用getHibernateTemplate()方法来操作hsql进行数据增删改等操作。...

    火炬博客系统7

    进行完整的事务管理和异常的包装,在此用了Spring的事物模板(TransactionTemplate)实现,可分离数据访问和事物处理,提高业务对象的可复用性,采用getHibernateTemplate()方法来操作hsql进行数据增删改等操作。...

    火炬博客系统6

    进行完整的事务管理和异常的包装,在此用了Spring的事物模板(TransactionTemplate)实现,可分离数据访问和事物处理,提高业务对象的可复用性,采用getHibernateTemplate()方法来操作hsql进行数据增删改等操作。...

Global site tag (gtag.js) - Google Analytics