如何在非事务性数据库中实现事务

时间:2012-04-27 12:40:37

标签: java database transactions

如何在非事务性数据库中实现事务。

1)请解释如何在java端执行此操作。

注意:我将分享我在寻找答案时所付出的努力。

假设您在一个事务中有两个插入和两个更新。所以你将有四个线程执行每个指令,一个线程将监视它们。如果其中一个线程出现任何故障,那么监控线程将取消所有内容。

1 个答案:

答案 0 :(得分:2)

参与交易的每个线程都有一个交易ID。您需要创建一个可以写入的结构来跟踪数据(或键)以便撤消更改。

与真实数据库一样,当您进行更新时,需要存储之前更改的数据,并且还需要记录更改后的数据。你需要这个,因为你可能需要它来找到记录。

插入更容易,只需删除记录即可。

删除也需要存储之前删除的数据。

因此,您创建的任何结构都需要事务ID,表名称以及列数据列表(可以是String的映射,用于存储列名的对象,列数据)。

这应该是一个非常好的开始......