Java JDBC中的长时间运行事务

Java JDBC中的长时间运行事务,java,spring,jdbc,transactions,spring-transactions,Java,Spring,Jdbc,Transactions,Spring Transactions,我正在重写一个遗留应用程序。它基本上是一个带有取消和保存按钮的表单,其中保存意味着提交,取消意味着回滚 为了实现这一点,应用程序在会话中为用户存储一个Jdbc连接,并从会话中检索它以进行db操作 下面是语句的示例序列: -> user login Connection conn = dataSource.getConnection(); conn.setAutoCommit(false); -> user interaction List items = conn.query(...

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

为了实现这一点,应用程序在会话中为用户存储一个Jdbc连接,并从会话中检索它以进行db操作

下面是语句的示例序列:

-> 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 (?)
我从未见过这样使用交易,我认为这是对概念的滥用。由于修改存储过程对我来说是一个黑盒子,我恐怕不得不复制这种方法


有没有更好的方法来实现这一点?不在web会话中存储连接?springs PlatformTransactionManager支持这一点吗?

这真是奇怪的遗留代码。。。(?!)