如何断言数据库连接是在事务中?

时间:2010-01-18 23:01:22

标签: java database transactions ibatis

我正在使用对象/关系映射器与数据库通信。在我的案例中,库是iBatis,它也用于事务管理。 但是,我最近有一个案例,即使startTransaction()等被称为documented,iBatis实际上并没有开始交易。 经过一些调试后,我发现我身边存在配置错误。

有人可能会责备iBatis,但我希望将来避免这种误解。 所以这就是问题:

如何以编程方式断言当前数据库连接是否在事务中运行?

我使用的数据库是Oracle,MySQL和H2(用于测试)。

1 个答案:

答案 0 :(得分:2)

我不是100%确定这是否绝对表明存在于tx中,但Connection.getAutoCommit()告诉您连接是否处于自动提交模式,其中自动提交“on”表示“无事务” ”

可能存在这种断言不成立的情况,但大多数基于JDBC的框架将使用该设置来控制事务。