在我的程序中,有两个类,比如类别和产品,每个产品对象都包含对它所属类别的引用。从XML加载数据并将其存储在数据库中时,会出现问题:
如果我创建一个类别对象并首先将其存储在数据库中,那么在创建产品失败时会出现脏数据。(我希望每个xml加载都是事务性的,因此如果用户因某些错误而失败,则数据库仍然像以前一样)。
如果我先创建产品,则不会为它们引用(由数据库生成的CategoryID)。我也可以先验证所有产品,但验证和对象创建中会有很多重复的代码。什么是最佳做法?
提前致谢!
答案 0 :(得分:0)
您应该在数据库中使用transactions ,以便在第二个插入失败时回滚第一个插入。
在大多数数据库中,您可以使用
开始交易START TRANSACTION
如果一切顺利,那就运行
COMMIT
如果出现问题,请运行
ROLLBACK
并且所有数据都会回到您开始交易之前的状态。