JdbcDaoSuppert和spring的事务管理--第五天

来源:互联网 发布:泰安网络推广 编辑:程序博客网 时间:2024/05/21 22:55

让某个实现类XXXDaoImpl  extends JdbcDaoSupport

1 在类中:

该实现类中不用注入 jdbcTemplate

(JdbcDaoSupport jdbcTemplate属性并且封装了get方法)

2 xml中:

XXDaobean中无需注入jdbcTemplate

(JdbcDaoSupport有:

但是需要注入

<property name="dataSource" ref="dataSource"></property>

以后直接在实现类中通过this.getJdbcTemplate()

得到JdbcTemplate对象

 


spring管理事务分两类

1 编程式的事务管理(自己手动写代码)

2 声明式的事务管理(配置) ---推荐

(1)配置xml (2)注解

 

spring管理事务:底层是AOP(),我们只需要配置,spring早已经帮我们提供好了某些方法,比如commitrollback

 

3个接口

1 PlatformTransactionManager  :事务管理器:该接口具有实现类,根据不同的持久层框架(hibernate,mybatis,spring jdbc模板…),选择不同的实现类

 

2TransactionDefinition :事务定义信息(隔离级别,传播行为)

 

3 TransactionStatus:事务的状态

 

配合:事务管理器

(PlatformTransactionManager)管理事务对象,根据事务定义信息(TransactionDefinition)进行事务管理,在管理事务中产生产生一些状态,将状态记录到TransactionStatus

 

 

PlatformTransactionManager-事务管理器:

 接口的实现类:

如果是springjdbc模板或者mybatis,则用DataSourceTransactionManager

如果是Hibernate框架,则用HibernateTransactionManager

 

 

TransactionDefinition :事务定义信息

传播行为和隔离级别采用默认即可


通过连接池C3P0+jdbc模板 做一个 转账的事务操作

 

配置xml





如果需要配置自己AOP切面类,就和以前一样,加上自己的<aop:config>即可:如



Spring事务注解的方式

1 xml



然后关于事务的通知配置以及该通知的aop就不要了

2 操作的类上或者方法上:



当然也可以在()配置一些信息,一般默认不用配置


原创粉丝点击