ROLLBACK撤消重做

时间:2010-11-06 22:22:48

标签: java copy binary-tree undo

我正在使用BST(二叉搜索树)构建数据库,我希望用户能够回滚最后5个命令。有什么建议?我正在使用Java。

2 个答案:

答案 0 :(得分:0)

你考虑过使用Berkey DB吗?它是免费的并且支持嵌套事务(这将允许您具有任意数量的回滚级别):

http://download.oracle.com/docs/cd/E17076_02/html/gsg_txn/JAVA/nestedtxn.html

即使您决定实施自己的数据库,它也可能有用作参考。

答案 1 :(得分:0)

听起来你想要Memento pattern。实际上,您创建的对象具有以下所需的所有信息:

  1. 从操作前树的状态开始,重复操作。 (重做)
  2. 从操作后的树状态恢复操作。 (撤消)
  3. 你要保留最后五个。当用户请求撤消时,取最新的,请求它恢复操作,然后以某种方式(例如某些索引变量)指示您在纪念品列表中的位置。然后,您应该可以在任一方向上移动列表,根据需要撤消和重做。