zoukankan      html  css  js  c++  java
  • 大型运输行业实战_day10_1_自定义事务管理类

    1.创建事务管理类  TransactionManager.java

     1 package com.day02.sation.transaction;
     2 
     3 import com.day02.sation.util.JdbcUtil;
     4 
     5 import java.sql.SQLException;
     6 
     7 /**
     8  * Created by Administrator on 1/8.
     9  */
    10 public class TransactionManager {
    11     /**
    12      * 关闭事务自动提交
    13      */
    14     public void before1() {
    15         System.out.println("-----before-----");
    16         try {
    17             JdbcUtil.getConnection().setAutoCommit(false);
    18         } catch (SQLException e) {
    19             e.printStackTrace();
    20         }
    21     }
    22 
    23     /**
    24      * 手动提交事务
    25      */
    26     public void after2() {
    27         System.out.println("-----after-----");
    28         try {
    29             JdbcUtil.getConnection().commit();
    30         } catch (SQLException e) {
    31             e.printStackTrace();
    32         }
    33     }
    34 
    35     /**
    36      * 事务回滚
    37      */
    38     public void rollback() {
    39         System.out.println("-----rollback-----");
    40         try {
    41             JdbcUtil.getConnection().rollback();
    42         } catch (SQLException e) {
    43             e.printStackTrace();
    44         }
    45     }
    46 }

     2.创建配置文件

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
     4        xsi:schemaLocation="http://www.springframework.org/schema/beans
     5         http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop
     6          http://www.springframework.org/schema/aop/spring-aop.xsd">
     7     <!--需要被管理的业务类-->
     8     <bean id="ticket3Service" class="com.day02.sation.transaction.Ticket3Service"/>
     9     <!--事务管理器-->
    10     <bean id="txManager" class="com.day02.sation.transaction.TransactionManager"/>
    11    <!-- aop配置-->
    12     <aop:config>
    13       <!--  配置切面-->
    14         <aop:aspect ref="txManager">
    15             <!--地点:方法-->
    16             <aop:pointcut id="txPoint" expression=" execution(* com.day02.sation.transaction.*Service.*(..) )"/>
    17             <!--时间-->
    18           <!--  方法执行前-->
    19             <aop:before method="before1" pointcut-ref="txPoint"/>
    20             <!--方法执行后-->
    21             <aop:after-returning method="after2" pointcut-ref="txPoint"/>
    22             <!--抛出异常时-->
    23             <aop:after-throwing method="rollback" pointcut-ref="txPoint"/>
    24         </aop:aspect>
    25     </aop:config>
    26 </beans>

    3.需要被管理的业务类 Ticket3Service.java

     1 package com.day02.sation.transaction;
     2 
     3 import com.day02.sation.util.JdbcUtil;
     4 
     5 import java.sql.Connection;
     6 import java.sql.Statement;
     7 
     8 /**
     9  * Created by Administrator on 1/8.
    10  */
    11 public class Ticket3Service {
    12     public void buyTicket() throws Exception {
    13         Connection connection = JdbcUtil.getConnection();
    14         Statement statement = connection.createStatement();
    15         //关闭自动提交数据
    16         String sql = " UPDATE ticket SET standby=14  WHERE id=3 ";
    17         int i = statement.executeUpdate(sql);
    18         System.out.println("===" + (1 / 0));
    19         //新增订单
    20         String sql2 = "INSERT INTO ticket_order (order_number,user_id,ticket_id) VALUES ('105',1,3)";
    21         statement.executeUpdate(sql2);
    22     }
    23 }

    4.测试方法

     1 package com.day02.sation.test;
     2 
     3 import com.day02.sation.transaction.Ticket3Service;
     4 import org.junit.Test;
     5 import org.junit.runner.RunWith;
     6 import org.springframework.beans.factory.annotation.Autowired;
     7 import org.springframework.test.context.ContextConfiguration;
     8 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
     9 
    10 /**
    11  * Created by Administrator on 12/27.
    12  */
    13 @RunWith(SpringJUnit4ClassRunner.class)
    14 @ContextConfiguration("classpath:spring/spring-myaop.xml")
    15 public class TestTransaction {
    16     @Autowired
    17     private Ticket3Service ticket3Service;
    18 
    19     @Test
    20     public void testGetList() {
    21         try {
    22             ticket3Service.buyTicket();
    23 
    24         } catch (Exception e) {
    25             e.printStackTrace();
    26         }
    27     }
    28 }

    5.使用到的jdbc工具类

     1 package com.day02.sation.util;
     2 
     3 import java.sql.Connection;
     4 import java.sql.DriverManager;
     5 
     6 /**
     7  * Created by Administrator on 1/8.
     8  */
     9 public class JdbcUtil {
    10     private static Connection connection = null;
    11 
    12     static {
    13         try {
    14             Class.forName("com.mysql.jdbc.Driver");
    15             connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/station", "root", "admin");
    16         } catch (Exception e) {
    17             e.printStackTrace();
    18         }
    19 
    20     }
    21 
    22     public static Connection getConnection() {
    23 
    24         return connection;
    25     }
    26 }

    完成测试吧!

  • 相关阅读:
    JavaScript
    94.Binary Tree Inorder Traversal
    144.Binary Tree Preorder Traversal
    106.Construct Binary Tree from Inorder and Postorder Traversal
    105.Construct Binary Tree from Preorder and Inorder Traversal
    90.Subsets II
    78.Subsets
    83.Merge Sorted Array
    80.Remove Duplicates from Sorted Array II
    79.Word Search
  • 原文地址:https://www.cnblogs.com/newAndHui/p/8243142.html
Copyright © 2011-2022 走看看