package com.wen.lesson04;
import com.wen.lesson02.utils.JdbcUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class TestTransaction1 {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement st = null;
ResultSet rs = null;
try {
conn = JdbcUtils.getConnection();
//关闭数据库的自动提交,自动会开启事务
conn.setAutoCommit(false);
String sql1 = "UPDATE `account` SET money = money-100 WHERE `name`='A'";
st = conn.prepareStatement(sql1);
st.executeUpdate();
String sql2 = "UPDATE `account` SET money = money+100 WHERE `name`='B'";
st = conn.prepareStatement(sql2);
st.executeUpdate();
//业务完毕,提交事务
conn.commit();
System.out.println("提交成功");
} catch (SQLException e) {
try {
conn.rollback(); //如果失败则回滚事务
} catch (SQLException ex) {
throw new RuntimeException(ex);
}
throw new RuntimeException(e);
}finally {
JdbcUtils.release(conn, st, rs);
}
}
}
MySQL——JDBC操作事务
于 2023-10-17 21:00:31 首次发布