我正在重写遗留应用程序。它基本上是一个带有取消和保存按钮的表单,其中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支持这个吗?