首页 > 编程知识 正文

@transactional注解默认的回滚方式,java数据回滚

时间:2023-05-03 07:21:23 阅读:34851 作者:1628

事务是由一系列访问和更新系统中数据的操作组成的程序执行逻辑单元

事务有两种状态:提交和回滚。

) commit )提交事务时,磁盘缓存中的数据将写入磁盘的数据库。 由于常规数据库是自动提交的,因此数据库将在更改后发生更改。

)2)回滚)数据,使事务成功执行的部分恢复到原始状态。

案例:银行转账,a给b 100元,有两个数据库更新操作,首先更新a的金额减少100,然后b的金额增加100。 a的金额减少后,如果发送异常则回滚,使a的金额返回初始状态。

代码:

public void测试传输() {Connection conn=null; 预准备语句PS=null; ResultSet rs=null; try {conn=JDBCUtil.getConn (; //连接到数据库//连接时,缺省情况下自动提交事务。 关闭自动提交。 conn.set自动提交(false ); //自动提交事务string SQL=' updateaccountsetmoney=money -? where id=?' ; PS=Conn.preparestatement(SQL; //提取,提取ID为1的100美元PS.set int (1,100 ); PS.set int (2,1; PS.execute更新(; int a=10 /0; //异常发生部分//加钱,ID为2 100美元的PS.setint(1,-100 ); PS.set int (2,2 ); PS.execute更新(; //成功:提交事务。 conn.commit (; }catch(sqlexceptione ) try(/事变:事务conn.rollback ); }catch(sqlexceptionE1) { E1 .打印堆栈跟踪); }e.printStackTrace (; }finally{JDBCutil.release(Conn,ps,rs ); //关闭连接}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。