如何在非事务性数据库中实现事务。
1)请解释如何在java端执行此操作。
注意:我将分享我在寻找答案时所付出的努力。
假设您在一个事务中有两个插入和两个更新。所以你将有四个线程执行每个指令,一个线程将监视它们。如果其中一个线程出现任何故障,那么监控线程将取消所有内容。
答案 0 :(得分:2)
参与交易的每个线程都有一个交易ID。您需要创建一个可以写入的结构来跟踪数据(或键)以便撤消更改。
与真实数据库一样,当您进行更新时,需要存储之前更改的数据,并且还需要记录更改后的数据。你需要这个,因为你可能需要它来找到记录。
插入更容易,只需删除记录即可。
删除也需要存储之前删除的数据。
因此,您创建的任何结构都需要事务ID,表名称以及列数据列表(可以是String的映射,用于存储列名的对象,列数据)。
这应该是一个非常好的开始......