import Day01.Text03.JdbcUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/**
* 数据库事务管理
* 执行sql前开启事务
* sql执行完毕提交事务
* 异常中回滚事务
*/
public class Deom {
public static void main(String[] args) throws SQLException {
Connection connection = null;
PreparedStatement preparedStatement1 = null;
PreparedStatement preparedStatement2 = null;
try {
connection = JdbcUtils.getConnection();
/**
* 开启事务
*/
connection.setAutoCommit(false);
String sql1 = "update score set Degree=Degree-? where Sno=?";
String sql2 = "update score set Degree=Degree+? where Sno=?";
preparedStatement1 = connection.prepareStatement(sql1);
preparedStatement2 = connection.prepareStatement(sql2);
preparedStatement1.setInt(1, 10);
preparedStatement1.setString(2, "103");
preparedStatement2.setInt(1, 10);
preparedStatement2.setString(2, "105");
preparedStatement1.executeUpdate();
int i = 1 / 0;
preparedStatement2.executeUpdate();
/**
* 提交事务
*/
connection.commit();
} catch (Exception e) {
/**
* 回滚事务
*/
if (connection != null) {
connection.rollback();
System.out.println("转账失败,请重新尝试");
}
e.printStackTrace();
} finally {
JdbcUtils.close(preparedStatement1, connection);
JdbcUtils.close(preparedStatement2, null);
}
}
}
jdbc数据库事务管理
最新推荐文章于 2023-10-17 14:43:08 发布