代码之家  ›  专栏  ›  技术社区  ›  Enrique

spring,ibatis,mysql-如何管理事务?

  •  3
  • Enrique  · 技术社区  · 16 年前

    你好,我正在用SpringIbatis和MySQL构建一个Web应用程序。

    我将使用mysql存储过程,并将其与ibatis一起调用。 我的问题是如何管理交易。 我应该管理存储过程中的事务,还是使用Spring/IBatis,或者两者都管理?

    2 回复  |  直到 13 年前
        1
  •  1
  •   Brian    13 年前

    我很高兴地使用了iBATIS和存储过程,在这种方法中我看不到任何不好的地方。

    iBATIS非常适合将参数方便地传递到您的变更数据过程中,以及适当地处理获取数据过程的结果集。

    如果您的进程选择这样做,iBATIS还可以处理多个结果集的输出。

    在事务方面:这取决于。如果你的应用程序可以在自动提交模式下正常运行,但是你有一些不同的过程需要事务处理,那么proc managed可能对你有用。您可以设计您的应用程序,使任何需要事务处理的都由一个“父”过程协调。没有说这是一个特别令人钦佩的模式,但它可能会在合理的程度上起作用。

    如果这听起来不合适,那么Spring管理的事务无疑是从第一天开始实施的一个不错的选择,而且这种方法很可能随着应用程序的发展而优雅地增长。

    最后一个想法-注意事务的嵌套,即,如果您有应用程序/Spring事务管理,不管您在进程中放入了什么事务处理,直到您从应用程序端提交那些“内部”提交“不正确”提交(它们可以有用途,但这超出了我在这里要讨论的范围)。

    编辑-自从写了这个之后,我了解到不同的DBS处理提交嵌套的方式不同。似乎Oracle特别将提交视为提交,而不管嵌套如何,所以在其他应用程序管理的事务中提交的进程确实得到了正确的提交。

        2
  •  1
  •   duffymo    16 年前

    我不知道为什么要使用存储过程。既然你是,我不知道伊巴提斯在给你买什么。

    如果我正在编写这个应用程序,我要么使用Spring和iBatis,要么使用Spring和存储过程,但不能同时使用两者。

    我将使用Spring管理事务,确保存储过程中没有事务逻辑。