【问题标题】:Where should I manage these transactions and how?我应该在哪里管理这些交易以及如何管理?
【发布时间】:2021-04-22 05:42:56
【问题描述】:

我正在使用内容提供程序在数据库上执行两项事务。

#1st 是表 A 的更新。

#2nd 是对表 B 的插入(表“B”在表“A”的主键上有外键引用)

  1. row = getContentResolver().update(updatedUri, contentValues, selection, selectionArgs);
  2. Entry_in_Transaaction_Table_Uri = getContentResolver().insert(myTransactionEntry.CONTENT_URI, contentValues_for_transaction_table);

在这里,我希望仅在第 1 个事务正确完成时才执行第 2 个事务。
如果 #1st 或 #2nd 事务中出现任何问题,它应该回滚所有更改。
我的问题是我应该在哪里管理这些交易以及如何管理?我的意思是在ActivityContentProvider 类中。
我对 android 编程相当陌生。

【问题讨论】:

    标签: android transactions


    【解决方案1】:

    做它内容提供者类是要走的路。 Activity 和 Fragment 只能用于在 GUI 上显示数据,自己的 ContentProvider/API 层应该进行数据库查询并将结果返回给 Activity/Fragment。

    【讨论】:

    • 感谢您的回复。我知道我们应该对 contentProvider 进行数据库查询,但我无法针对不同类型的事务执行此操作,即一个用于更新,一个用于插入以及不同的表。
    • @Vivekgupta 哦,你的意思是如果第一个事务成功而第二个事务不成功,你就无法回滚这两个更改?
    • 完全正确,反之亦然。 @萨凡路飞
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多