我有一个 Spring 框架背景,如果你知道一点,你就知道你可以有一个事务服务方法,例如 myStuffTransactional(),这个可以有一堆 DAO 操作,如果有任何 DAO 操作失败然后所有方法 myStuffTransactional() 将失败并回滚。
例子:
@Transactional
public void myStuffTransactional(){
dao1.insertSome();
dao2.deleteSome();
dao3.updateSome();
}
但是在这里我知道如果 dao3.updateSome() 失败,那么 dao1 和 doa2 将回滚,我的数据库将保持不变。
现在我有时间使用 PHP Zend 框架,但我可以获得相同的 Spring-transactional-behaviour。我见过很多例子,比如:
$db->beginTransaction();
try
{
$db->exec($sqlSentence);
$query = $db->commit();
}
catch(Exception $e)
{
$db->rollBack();
}
而这个只是以模型(或 DAO)的方式工作,我的意思是,操作操作。我需要的是一个用于一堆数据库操作的方法包装器,就像 spring 框架一样。
任何人都知道这是否可能?
提前谢谢大家。