0

我在基于 Java JDBC 的事务中有以下场景(在 200 个基于用户的 Java Web 应用程序中)。

请指教以下方法是否正确:

  1. 打开一个主要交易---
  2. 产生一个值
  3. 基于上述值,应该发生插入或更新(无论主事务失败,此插入都应该持续存在
  4. 所以我打开原子事务(一个新的连接和一个执行和提交值的事务)
  5. 关闭连接
  6. 如果失败回滚步骤 5-1
  7. 如果成功继续进行主要交易
  8. 如果发生故障,则仅回滚 main 而不是 child,因为 child 已经提交。

我担心与我的方法相关的性能和其他问题。

4

1 回答 1

0

我认为您的交易表现将取决于许多因素,并且与您如何开发每一步完全相关。

例如,是否使用连接池,或者是否使用 PreparedStatement,或者是否使用存储过程等都会有所不同。

如果这对您有用,那么您的方法顺序似乎是正确的:)

如果您使用池、准备好的语句等,您可以评估与数据库相关的问题是否有帮助。

如果您需要优化您的应用程序,您可以使用 Profiler,这里有一些与 Profiler 相关的帖子。

https://stackoverflow.com/questions/9101680/free-profiler-for-java

问候。

于 2013-12-04T22:30:15.833 回答