事务作用:在数据层保障一系列的数据库操作同成功同失败
Spring作用:在数据层或业务层保障一系列的数据库操作同成功同失败
本文以银行卡转账为例,利用mybatis和spring实现本文目标,Spring事务的实现类为DataSourceTransactionManager
第一步:我们在jdbc配置文件实现此类
@Bean
public PlatformTransactionManager transactionManager (DataSource dataSource){
DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager();
dataSourceTransactionManager.setDataSource(dataSource);
return dataSourceTransactionManager;
}
第二步,我们在service层声明事务,使用注解@Transactional
public interface AccountService {
@Transactional
public void transfer(String out,String in,Double money);
}
第三步:在Spring配置中,是事务启作用,记住此注解
@EnableTransactionManagement
以上几步都是Spring事务的标配
//开启事务管理
@EnableTransactionManagement
public class SpringConfig {
}
数据访问层代码
public interface AccountDao {
@Update("update account set money = money + #{money} where name = #{name}")
public void inMoney(@Param("name") String name,@Param("money") Double money);
@Update("update account set money = money - #{money} where name = #{name}")
public void outMoney(@Param("name")String name,@Param("money") Double money);
}
网友评论