HibernateTemplate的使用

本文详细介绍了在Spring框架中如何利用HibernateTemplate简化ORM操作,包括配置SessionFactory、注入HibernateTemplate并进行CRUD操作的过程。通过示例代码演示了如何在DaoImpl中使用HibernateTemplate实现对象持久化。

          今天学习了一下Spring的HibernateTemplate这个这个知识点,现在跟大家分享一下。

           HibernateTemplate这个类在org.springframework.orm.hibernate3中。HIbernateTemplate其实就是把Hibernate中的相同的代码提取出来了。比如我们使用Hibernate的时候通常都是一、获取SessionFactory;二、获取session;三、开始事物;四、CRUD操作;五、提交事物;六、关闭session。其中开始事务,关闭事务,获取session部分都是一样的。因此Spring对Hibernate做了简化封装。把相同部分的代码提取出来做一个模板。即HibernateTemplate。每次只需要加CRUD部分的代码。

          用法:

                 一、通过注入。在beans.xml中加配置

                      (1)、

                    <bean id="sessionFactory"
                class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
           <property name="dataSource" ref="dataSource" />
           <property name="annotatedClasses">
           <list>
         <value>com.sram.model.User</value>
          <value>com.sram.model.Log</value>
          </list>
          </property>
        <property name="hibernateProperties">
       <props>
        <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
       <prop key="hibernate.show_sql">true</prop>
       </props>
                      </property>
           </bean>

           <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
                         <property name="sessionFactory" ref="sessionFactory"></property>
           </bean>


                 (2)、在DaoImpl中通过@Resource注入hibernateTemplate,然后直接通过hibernateTemplate调用方法。

                      @Component("logDao")
public class LogDaoImpl implements LogDao {


private HibernateTemplate hibernateTemplate;


public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}


@Resource
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}


public void save(Log log) {
// TODO Auto-generated method stub



hibernateTemplate.save(log);


}


}

       二、不通过注入的HibernateTemplate的使用

              

public class ProductDaoImpl implements ProductDao {

    private HibernateTemplate hibernateTemplate;

    public void setSessionFactory(SessionFactory sessionFactory) {
        this.hibernateTemplate = new HibernateTemplate(sessionFactory);
    }

    public Collection loadProductsByCategory(String category) throws DataAccessException {
    	return this.hibernateTemplate.find("from test.Product product where product.category=?", category);
    }
}

                 

                   

        


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值