spring学习笔记之二:Spring对事务的支持

本文介绍了Spring框架如何为不同的持久化技术提供一致的事务管理抽象,包括JPA、Hibernate、JDBC及ibatis等。通过DataSourceTransactionManager实现了基于JDBC或ibatis的数据源事务管理,并展示了如何使用注解(@Transactional)进行申明式事务配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    1spring对事务的管理提供了一致的编程模板,在高层次的建立了统一的事务抽象,也就是说,不管选择Spring Jdbc,Hibernate,Jpa还是ibatis  ,

都可以用统一的编程模型进行事务管理。这让用户可以抛开事务处理来编写程序。

  2下面是spring对事务管理器的实现类。

          A org.springframework.orm.jpa.JpaTransactionManager -----使用JPA时

    Borg.springframework.orm.hibernate3.HibernateTransactionManager ------使用Hibernate3.0时

    Corg.springframework.orm.jdbc.datasource.DataSourceTransactionManager --JDBC或者ibatis等基于datasource数据源持久化技术时。

   这些事务管理器都是对特定事务实现的框架的代理,我门可以通过Spring提供的抽象对不同类型的事务采用相同的处理,而不必关系实现的细节。

       3  常见的事务管理器。

   在使用 jdbc,ibatis时: 写道

<bean id="dataSource "
class="com.mchange.v2.c3p0.ComboPooledDataSource "
destroy-method="close" p:driverClass="${jdbc.driverClass}"
p:jdbcUrl="${jdbc.jdbcUrl}" p:user="${jdbc.user}"
p:password="${jdbc.password}">
<property name="initialPoolSize"
value="5" />
<property name="maxPoolSize" value="10" />
</bean>

<!-- Transaction manager for a single JDBC DataSource (alternative to JTA) -->
<bean id="transactionManager "
class="org.springframework.jdbc.datasource.DataSourceTransactionManager "
p:dataSource-ref="dataSource " />

<tx:annotation-driven transaction-manager="transactionManager "/>

 

在幕后,DataSourceTransactionManager使用DataSource的Connection的Commit(),Rollback()等方法的管理事务。

  4采用注解的方式配置申明式事务(@Transactional),用户可以直接在需要事务增强的业务类或业务方法中 使用◎Transaction进行定义(注解不能被继承),代替XML的配置方式,

◎Transaction 写道

@Service
@Transactional

public class UserDaoManagerImpl extends IbatisDaoSupport implements UserDaoManager {

@Override
public List getUserLists() {

return null;
}

@Override
public void showMessage() {
List list=this.getSqlMapClientTemplate().queryForList("getSeq");
}

}
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值