Spring之事务操作(配置文件)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Spring之事务操作(配置⽂件)UserDao.java
1package helloworld.tx;
2
3import org.springframework.jdbc.core.JdbcTemplate;
4
5public class UserDao {
6
7private JdbcTemplate jdbcTemplate;
8
9public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
10this.jdbcTemplate = jdbcTemplate;
11 }
12
13// 实现添加操作
14public void add() {
15// 调⽤jdbcTemplate对象中的⽅法实现操作
16 String sql = "insert into salary value(?,?)";
17// 表结构:name(varchar 20),salary(int 20)
18int rows = jdbcTemplate.update(sql, "Tom", 10000);
19 System.out.println("插⼊⾏数:" + rows);
20 rows = jdbcTemplate.update(sql, "Jerry", 10000);
21 System.out.println("插⼊⾏数:" + rows);
22 }
23
24// 减少
25public void reduce(String name,int num) {
26// 调⽤jdbcTemplate对象中的⽅法实现操作
27 String sql = "update salary set salary = (salary - ?) where name= ?";
28// 表结构:name(varchar 20),salary(int 20)
29int rows = jdbcTemplate.update(sql, num, name);
30 System.out.println("修改⾏数:" + rows);
31 }
32
33// 增加
34public void increase(String name,int num) {
35// 调⽤jdbcTemplate对象中的⽅法实现操作
36 String sql = "update salary set salary = (salary + ?) where name= ?";
37// 表结构:name(varchar 20),salary(int 20)
38int rows = jdbcTemplate.update(sql, num, name);
39 System.out.println("修改⾏数:" + rows);
40 }
41
42
43 }
UserSerivce.java
1package helloworld.tx;
2
3public class UserSerivce {
4private UserDao userDao;
5
6public void setUserDao(UserDao userDao) {
erDao = userDao;
8 }
9
10public void add(){
11 userDao.add();
12 }
13
14// ⼯资调整
15public void updateAccount(){
16
17 userDao.reduce("Tom",1000);
18
19// 制造异常
20// int n = 100/0;
21
22 userDao.increase("Jerry",1000);
23
24 }
25
26 }
TestTX.java
1package helloworld.tx;
2
3import org.junit.Before;
4import org.junit.Ignore;
5import org.junit.Test;
6import org.springframework.context.ApplicationContext;
7import org.springframework.context.support.ClassPathXmlApplicationContext;
8
9/*
10* 事务操作举例
11* */
12public class TestTX {
13 @Before
14public void beforeRun() {
15 System.out.println("beforeRun");
16 }
17
18// 插⼊数据
19 @Ignore
20 @Test
21public void add() {
22 ApplicationContext context =
23new ClassPathXmlApplicationContext("beans_tx.xml");
24 UserSerivce userSerivce = (UserSerivce) context.getBean("userSerivce");
25 userSerivce.add();
26 }
27
28 @Test
29public void update() {
30 ApplicationContext context =
31new ClassPathXmlApplicationContext("beans_tx.xml");
32 UserSerivce userSerivce = (UserSerivce) context.getBean("userSerivce");
33 userSerivce.updateAccount();
34 }
35
36 }
beans_tx.xml
1<beans xmlns="/schema/beans"
2 xmlns:xsi="/2001/XMLSchema-instance"
3 xmlns:contexnt="/schema/context"
4 xmlns:tx="/schema/tx" xmlns:aop="/schema/aop"
5 xsi:schemaLocation="/schema/beans
6 /schema/beans/spring-beans.xsd
7 /schema/context
8 /schema/context/spring-context-2.5.xsd
9 /schema/tx
10 /schema/tx/spring-tx.xsd /schema/aop /schema/aop/spring-aop.xsd"> 11<!--事务配置⽂件-->
12
13<!--配置c3p0连接池-->
14<bean id="dataSource" class="boPooledDataSource">
15<!--注⼊属性-->
16<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
17<property name="jdbcUrl" value="jdbc:mysql://192.168.184.130:3306/gxrdb"></property>
18<property name="user" value="root"></property>
19<property name="password" value="root"></property>
20</bean>
21
22
23<!-- 第⼀步、配置事务管理器 -->
24<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
25<property name="dataSource" ref="dataSource"/>
26</bean>
27<!-- 第⼆步、配置事务增强 -->
28<tx:advice id="txAdvice" transaction-manager="transactionManager">
29<!--做事务操作-->
30<tx:attributes>
31<!--事务操作的⽅法的匹配规则-->
32<!--name:⽅法名;propagation:隔离级别-->
33<tx:method name="update*" propagation="REQUIRED"/>
34<tx:method name="add"/>
35</tx:attributes>
36</tx:advice>
37<!-- 第三步、配置切⾯-->
38<aop:config>
39<!--切⼊点-->
40<!-- *表⽰任意⽅法;..表⽰任意参数-->
41<aop:pointcut id="pointcut1" expression="execution(* erSerivce.*(..))"></aop:pointcut>
42<!--切⾯-->
43<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut1"></aop:advisor>
44</aop:config>
45
46
47<!--创建service对象,注⼊dao对象-->
48<bean id="userSerivce" class="erSerivce">
49<property name="userDao" ref="userDao"></property>
50</bean>
51
52<!--创建DAO对象,注⼊JdbcTemplate对象-->
53<bean id="userDao" class="erDao">
54<property name="jdbcTemplate" ref="jdbcTemplate"></property>
55</bean>
56
57<!--创建JdbcTemplate对象,注⼊连接池dataSource-->
58<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> 59<property name="dataSource" ref="dataSource"></property>
60</bean>
61
62</beans>。

相关文档
最新文档