代码之家  ›  专栏  ›  技术社区  ›  Benedikt Waldvogel assylias

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

  •  2
  • Benedikt Waldvogel assylias  · 技术社区  · 15 年前

    我正在使用对象/关系映射器与数据库进行对话。图书馆在我的情况下是 iBatis 也用于事务管理。 然而,我最近有一个案例,伊巴提斯并没有真正开始交易,即使 startTransaction() 等被称为 documented . 经过一些调试,我发现我这边有一个配置错误。

    有人可能会责怪伊巴提斯,但我想在将来避免这种误解。 所以问题是:

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

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

    1 回复  |  直到 15 年前
        1
  •  2
  •   skaffman    15 年前

    我不能百分之百确定这是否完全表明你在德克萨斯州,但是 Connection.getAutoCommit() 告诉您连接是否处于自动提交模式,其中auto-commit“on”表示“无事务”。

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