我可以在主要交易中打开新连接吗?

时间:2013-04-04 13:12:03

标签: java jdbc connection

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

请告知以下方法是否正确:

  1. 打开主要交易---
  2. 结果值
  3. 基于上述值,应该进行插入或更新(无论主要事务失败,此插入都应该保留
  4. 所以我打开原子事务(一个新连接和一个执行并提交值的事务)
  5. 关闭连接
  6. 如果故障回滚,则执行步骤5-1
  7. 如果主要交易继续成功
  8. 如果发生故障,则仅回滚主要而不是孩子,因为孩子已经被提交。
  9. 我担心与我的方法有关的表现和其他问题。

1 个答案:

答案 0 :(得分:0)

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

通过示例,如果您使用连接池,或者您是否使用PreparedStatement,或者您是否使用了存储过程等,它会有所不同。

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

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

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

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

问候。