JDBC中的长时间运行事务

时间:2018-04-10 15:28:55

标签: java spring jdbc transactions spring-transactions

我正在重写遗留应用程序。它基本上是一个带有取消和保存按钮的表单,其中save表示提交和取消意味着回滚!

为实现此目的,App在用户的会话中存储Jdbc-Connection,并从会话中检索db-operations。

以下是一系列陈述的示例:

-> user login
Connection conn = dataSource.getConnection();
conn.setAutoCommit(false);
-> user interaction
List items = conn.query(...);         //jdbc query
-> user interaction
Item item = conn.callStatement(...)   //call stored procedure inserting data
-> user interaction
conn.rollback(); // cancel all modifications by the user (in this session)
conn.commit();   // commit the rollback (?)

我从未见过这样的交易用途,在我看来这是对这个概念的误用。由于修改存储过程对我来说是一个黑盒子,我恐怕不得不复制这种方法。

有没有更好的方法来实现这一目标?没有在网络会话中存储连接? spring springTransactionManager支持这个吗?

0 个答案:

没有答案