gpt4 book ai didi

mysql - Spring、iBatis、MySQL——如何管理事务?

转载 作者:可可西里 更新时间:2023-11-01 08:38:23 25 4
gpt4 key购买 nike

你好,我正在使用 spring ibatis 和 mysql 构建一个 web 应用程序。

我打算用mysql存储过程,用ibatis调用。我的问题是关于如何管理交易。我应该在存储过程中管理事务还是使用 spring/ibatis 或两者一起管理?

最佳答案

我非常愉快地使用了 Ibatis 和存储过程,我看不出这种方法有什么不妥之处。

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

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

在交易方面:这取决于。如果您的应用程序通常可以在自动提交模式下非常愉快地运行,但您有一些需要事务的不同过程,那么 proc-managed 可能适合您。您可以设计您的应用程序,使任何需要事务的东西都由单个“父”过程编排。并不是说这是一个特别令人钦佩的模式,但它可能会在合理的范围内发挥作用。

如果这听起来不合适,Spring 管理的事务绝对是从第一天开始实现的不错选择,而且这种方法最有可能随着您的应用程序优雅地成长。

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

编辑 - 自从写这篇文章以来,我了解到不同的数据库以不同的方式处理 COMMIT 的嵌套。似乎 Oracle 特别将 COMMIT 视为 COMMIT 而不管嵌套,因此在其他应用程序管理的事务中提交的过程确实得到了正确的提交。

关于mysql - Spring、iBatis、MySQL——如何管理事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1656280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com