spring(三)spring事务操作本文转自:http://www.cnblogs.com/whgk/p/6638192.html前面一篇博文讲解了什么是AOP。学会了写AOP的实现,但是并没有实际运用起来,这一篇博文就算是对AOP技术应用的进阶把,重点是事务的处理。--wh一、jdbcTemplate 什么是JdbcTemplate?
使用c3p0充当数据源
第三步:UserDao中使用JdbcTemplate
但是spring为了让我们更方便,不用每次都写set方法和JdbcTemplate属性,给我们提供了一个类JdbcDaoSupport,我们只需要继承他,就可以直接获得jdbcTemplate了,因为JdbcDaoSupport中帮我们写了set方法
第四步:使用JdbcTemplateAPI操作数据库update进行增删改操作queryForObject查询一个query查询所有queryForInt查询一个整形(分页)
第五步,测试成功插入数据,其他的就不测了。
提升:使用properties将连接数据的具体参数配合到properties文件,由spring加载properties,并在spring配置文件中使用
三、spring如何进行事务的管理的理论分析PlatformTransactionManager:事务平台管理器。
jdbc事务管理器:DataSourceTransactionManagerhibernate事务管理器:HibernateTransactionManagerPlatformTransactionManager是一个接口,那我们看它定义了哪些方法供我们使用的。
TransactionStatusgetTransaction(TransactionDefinition);获取事务,参数TransactionDefinition(事务详情),该参数是需要我们配置的,通过我们配置的内容才能知道事务如何去处理。
TransactionDefinitionspring管理器必须通过
设置4个隔离级别就不用说了把,跟上面我们说的是一样的。解决隔离问题的四种级别。传播行为:一个业务A,一个业务B,AB如何共享事务,不同传播行为共享方案不同。什么意思呢?比如业务A为银行转账的业务。业务B为转完账发短信的业务,平常我们是转完钱,那么我们就需要收到短信说我们的账户上被转走多少钱,而收钱的那一方则需要收到短信说账户被转进多少钱,那么这两个业务是使用同一个事务呢?
重点看47到59行的代码,配置事务管理器和事务详情,然后通过aop将我们的事务应用到指定的切入点上去,使用的是表达式。指定一个范围。其中,事务详情和事务管理器的结合就相当于通知(加强的方法),所以菜在通知引用上可以写上exAdvice。这点必须想清楚。也就是我们都不需要自己手动写什么开启事务等代码,spring全帮我们写好了,我们只需要配置一下事务详情即可。
这样设置的话,就可以对不同的方法进行不同的事务处理了,很方便。比如add*,意思是add开头的方法,就使用传播行为为REQUIRED的事务进行处理,而find*,find开头的方法只能读,并且传播行为为REQUIRED。五、spring使用AOP技术来进行事务操作(基于注解)超级简单。三步1、声明事务管理器2、将事务管理器交予spring前两步是在xml中写的
领取专属 10元无门槛券
私享最新 技术干货