我在基于 Java JDBC 的事务中有以下场景(在 200 个基于用户的 Java Web 应用程序中)。
请指教以下方法是否正确:
- 打开一个主要交易---
- 产生一个值
- 基于上述值,应该发生插入或更新(无论主事务失败,此插入都应该持续存在
- 所以我打开原子事务(一个新的连接和一个执行和提交值的事务)
- 关闭连接
- 如果失败回滚步骤 5-1
- 如果成功继续进行主要交易
- 如果发生故障,则仅回滚 main 而不是 child,因为 child 已经提交。
我担心与我的方法相关的性能和其他问题。
我在基于 Java JDBC 的事务中有以下场景(在 200 个基于用户的 Java Web 应用程序中)。
请指教以下方法是否正确:
我担心与我的方法相关的性能和其他问题。
我认为您的交易表现将取决于许多因素,并且与您如何开发每一步完全相关。
例如,是否使用连接池,或者是否使用 PreparedStatement,或者是否使用存储过程等都会有所不同。
如果这对您有用,那么您的方法顺序似乎是正确的:)
如果您使用池、准备好的语句等,您可以评估与数据库相关的问题是否有帮助。
如果您需要优化您的应用程序,您可以使用 Profiler,这里有一些与 Profiler 相关的帖子。
https://stackoverflow.com/questions/9101680/free-profiler-for-java
问候。