在 Android 项目上实现 DAO 模式

Posted

技术标签:

【中文标题】在 Android 项目上实现 DAO 模式【英文标题】:Implementing DAO Pattern on Android project 【发布时间】:2012-04-27 01:02:22 【问题描述】:

我正在开发 android 3.1 及更高版本。

我有以下包:

es.viacognita.models 包含用于存储通过 Web 服务检索到的数据的类。当我得到所有的网络服务数据时,我需要将它插入到数据库中。

为了使它正确,我曾想过使用 DAO 模式,但我不知道该怎么做。

如果我使用 DAO 模式,是否需要使用 es.viacognita.models 类?我认为这些类将成为 DAO 类,不是吗?

我必须在哪里实现插入、更新或删除?在DBManager 上课?

【问题讨论】:

【参考方案1】:

您可以在 DBManager 类中实现插入、更新、删除和所有其他操作,或者创建一个单独的类 dao 来执行您想要对数据库执行的所有操作...

    public class DAO 
private SQLiteDatabase database,customdb;
private DBManager dbHelper;



public DAO(Context context) 
    dbHelper = new DBManager(context);

public void open() throws SQLException 
    database = dbHelper.getWritableDatabase();


public void close() 
    dbHelper.close();

//insering,deleting and all other operations you want to perforem on the database
  

【讨论】:

感谢您的回答。我还有一个问题:如何实现交易?谢谢。 事务是什么意思?插入、删除等操作? 是的。我必须插入很多表,如果其中一个失败,我必须撤消所有以前的插入。【参考方案2】:

我会使用 DBManager 的命名空间。我将您的模型类视为业务实体类,并为 DAO (DAL) 层创建一个单独的库。使用这种方法,您可以将业务逻辑与数据访问层分开。

【讨论】:

以上是关于在 Android 项目上实现 DAO 模式的主要内容,如果未能解决你的问题,请参考以下文章

如何按照存储库模式在 Asp.Net Core 5.0 项目上实现 .Net Core Identity?

如何在 Android 平板电脑上实现主从视图 Qt/QML?

在 Android 上实现后台位置跟踪

如何在 Android 1.5 上实现推送?

在 Android 上实现推送通知的简单方法

尝试在 Android Studio 上实现 RapidApi