spring整合hibernate的事物处理

博客主要探讨Spring事务处理在Service层和Dao层的应用。通过代码示例展示了使用HibernateTemplate、JdbcDaoSupport、SessionFactory等进行数据库操作。经测试,在Service层和Dao层进行事务操作均可正确使用Spring事务处理,且使用sessionFactory和hibernateTemplate在事务处理上无区别。

通常使用

import org.springframework.orm.hibernate4.HibernateTemplate;

import org.springframework.jdbc.core.support.JdbcDaoSupport;---它是抽象类;不能通过配置文件获取bean

还有一种import org.springframework.orm.hibernate4.support.HibernateDaoSupport;

它同伙getSessionFactory 和getHibernateTemplate()实现数据库的操作的

重写一个类实现JdbcDaoSupport,下面方式实例化一个bean

    /*
     * 验证这个不需要set方法
     * @Resource(name="jdbcTemplate")
    private JdbcTemplate jdbcTemplate;*/

//    @Autowired
    @Resource(name="dataSource")
    public void setDataSource2(DataSource dataSource)
    {
        setDataSource(dataSource);
    }

import org.springframework.jdbc.core.JdbcTemplate;--它不支持级联user.address或者user.address.id的获取

还有一种直接使用import org.hibernate.SessionFactory;

    @Resource(name="sessionFactory")
    private SessionFactory sessionFactory;

我在事务层service测试事务操作,分别使用session和sessionFactory删除一条记录,正确,

我在dao层;测试事务操作,分别使用session和hibernateTemplate添加记录,正确

说明:在service层和dao 层进行事务操作都是可以正确使用spring的事务处理的;

使用sessionFactory和hibernateTemplate都是可以的

我原来以为,调用dao层进行spring的事务处理,是不行的,必须在service层;

实际测试在dao层进行事务处理,session和hibernateTemplate都是可以的

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

hibernateTemplate和sessionFactory都是使用下面的,事务处理上没区别

<bean id="transactionManager"
        class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值