一、事务分为:声明式事务和编程式事务,当下要说的便是基于Spring实现的声明式事务
1、1 首先需要知道的关于事务的几个知识点
事务有四个特性:原子性,一致性,隔离性,持久性
在Spring中有专门的事务管理器DataSourceTransactionManager类,也就是一个切面类,在连接数据库进行增删改的联级操作时,事务就会发挥巨大作用,比如在书城买了一本书,在结账时先要进行的是三个步骤:1、查询到书本的售价,2、根据售价操作账户的余额减少,3、根据书本编号其库存减1,这三个步骤便是构成一个事务,只要其中一个出错,则事务失败,全部都不会执行。好了说到这里,在Spring中具体怎么实现呢
二、第一步还是导包,这里利用了c3p0数据库连接包,先看一下使用注解来配置事务需要导入的jar包,这里使用的是Sql Server数据库所以用的mssql-jdbc-6.4.0.jre8.jar驱动。
三、在ioc配置文件中配置数据库连接源,这里引用了外部配置文件,利用<context:property-placeholderr location="classpath:文件名"/>引入配置文件,下面的JdbcTemplate是Spring内的数据库操作模块中的类,使用它进行数据库操作
<context:property-placeholder location="classpath:dbconfig.properties"/>
<!-- 配置数据源 -->
<bean id="poolDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="driverClass" value="${jdbc.driver}"></property>
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="poolDataSource"></property>
&