java - JDBC Connection 的 rollback 方法在哪里调用?
本文介绍了java - JDBC Connection 的 rollback 方法在哪里调用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
不带事务的代码是这样的(外层的try-catch
已省略):
Connection conn = getConnection();
try {
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql1);
stmt.executeUpdate(sql2);
} finally {
conn.close();
}
如果要添加事务,rollback
在哪里调用?
如果在
catch
中调用,那么捕获哪个异常?如果仅仅捕获SQLException
,那么抛出其它异常的时候怎么办?如果捕获Exception
,那么抛出的异常目前没法处理(例如RuntimeException
)又怎么办?如果在
finally
中调用,我怎么区分正常和异常情况?
解决方案
Exception
无法捕获RuntimeException
的吗?JDBC
你只需要处理SQLException
即可JDK1.7之后一个
catch
块可以处理多个异常
try {
// ...
} catch(SQLException | RuntimeException e) {
conn.rollback();
throw e;
}
这篇关于java - JDBC Connection 的 rollback 方法在哪里调用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文