时间:2021-07-01 10:21:17 帮助过:16人阅读
数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。
概要: 一个数据库事务通常包含了一个序列的对数据库的读/写操作。它的存在包含有以下两个目的:connection.setAutoCommit(false);开启事务
connection.rollback() 回滚事务
connect.commit() 提交事务
案例代码:
import cn.guangming.demo.JdbcUtils; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; /** * 模拟银行的转账业务 * */ public class Transcation { public static void main(String[] args) { Connection connection=null; PreparedStatement preparedStatement=null; try { //1.获取连接 connection = JdbcUtils.getConnection(); //2.开启事务 connection.setAutoCommit(false); //3.获取preparedstatement preparedStatement = connection.prepareStatement("UPDATE coount SET money =money-? WHERE sname=?"); //4.使用preparedstatement两次更新操作 preparedStatement.setDouble(1,500); preparedStatement.setString(2,"dudu"); preparedStatement.executeUpdate(); System.out.println(11/0); preparedStatement=connection.prepareStatement("UPDATE coount SET money =money-? WHERE sname=?"); preparedStatement.setDouble(1,500); preparedStatement.setString(2,"jiujiu"); preparedStatement.executeUpdate(); //提交事务 connection.commit(); System.out.println("转账成功"); } catch (Exception e) { //事务回滚 try { connection.rollback(); } catch (SQLException e1) { e1.printStackTrace(); } System.out.println("转账失败"); }finally { //释放资源 JdbcUtils.close(preparedStatement,connection); } } }
JDBC事务的处理-----模拟银行转账业务
标签:where final 恢复 访问 操作 [] 存在 tran nts