猿问

java连接mysql的时候,事务没有提交遇到错误的时候还需要回滚吗?

preparedStatement.executeUpdate();
// int i = 2 / 0;
preparedStatement = connection.prepareStatement(sql2);
preparedStatement.executeUpdate();
connection.commit();

java进行mysql操作的时候,事务没有提交之前遇到错误的时候还需要回滚吗?


繁花如伊
浏览 768回答 2
2回答

宝慕林4294392

commit()的作用就是提交事物呢到数据库,如果在执行commit之前报错而没有执行commit就分为下面的情况:1.不提交只有两种情况:客户端进程终止,数据库主动回滚;执行代码的进程一直等待,这会阻塞其他修改该数据的会话2.提交失败只有一种情况吧: 数据库报错,这时数据库给客户端说数据库出问题了,问题修复后应该会主动回滚综上,无论因为网络中断还是db服务器问题(磁盘、电源...),都应该主动回滚,否则产生阻塞

一只甜甜圈

感觉这个不会 中间报错了 上面那条executeUpdate()已经把表更新了 ,下面报错的话就不会继续往下走了,所以事务应该是无效的,也不会有commit的可能了;
随时随地看视频慕课网APP

相关分类

Java
我要回答