事务的处理案例

Posted 苏轼的红烧肉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了事务的处理案例相关的知识,希望对你有一定的参考价值。

package com.lianxi;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Testzhuan {
    public static void main(String[] args) throws Exception {
        send(1, 2, 1);
    }
    static{
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    
    public static void send(int src,int target,int num) throws Exception{
        Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/boooks","root","tiger");
        PreparedStatement ps=null;
        PreparedStatement ps1=null;
        try{
            conn.setAutoCommit(false);
            //先减钱
             ps=conn.prepareStatement("update account set remain=remain-"+num+" where accountid=?");
            ps.setInt(1, src);
            ps.execute();
            int i=9/0;
            //加钱
             ps1=conn.prepareStatement("update account set remain=remain+"+num+" where accountid=?");
            ps1.setInt(1, target);
            ps1.execute();
            conn.commit();
        }catch(Exception e){
            conn.rollback();
            System.out.println("转账失败");
        }finally{
            ps.close();
            ps1.close();
            conn.close();
        }
        
    }

}

 

以上是关于事务的处理案例的主要内容,如果未能解决你的问题,请参考以下文章

事务的处理案例

片段事务中的实例化错误

Spring针对事务处理提供哪两种事务编程模式。

BottomNavigationView 滞后于片段事务

java事务处理全解析

Hibernate中事务小案例