0

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

1)请解释如何在java端做到这一点。

注意:我将分享我为寻找答案所做的努力。

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

4

1 回答 1

2

参与事务的每个线程都被赋予一个事务 id。您需要创建一个他们可以写入的结构,以跟踪数据(或键)以撤销更改。

就像一个真实的数据库一样,当你进行更新时,需要存储更改前的数据和记录更改后的数据。您需要这个,因为您可能需要它来查找记录。

插入要容易一些,只需删除记录。

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

因此,您创建的任何结构都需要一个事务 ID、一个表名和一个列数据列表(可以是字符串的映射、存储列名的对象、列数据)。

这应该是一个不错的开始...

于 2012-04-27T14:50:14.510 回答