我不认为,您可以将其与带有 Content Provider 的 ORM 进行比较。 ORMLite 向用户提供以下功能link,并在开发时具有完全独立的目标。
但除了您提到的内容之外,它们还有内容提供商的其他一些好处。
如果您想在多个应用程序或进程之间共享日期。可能现在您没有任何计划这样做,但您的应用程序似乎对数据库很重,并且将来如果您打算与第三方或您的另一个应用程序共享您的数据,您可以选择与内容提供商。
内容提供程序在所有 Android 版本中都是标准的,这也意味着您的应用程序是安全的。我很确定 ORMLite 也很稳定。但是你真的想冒这个风险吗,特别是如果这不能节省你的时间或者你没有任何业务需求这样做。 Android API 已经支离破碎,您还想在此基础上承担另一项工作吗?
如果您想将数据上传到云端,很容易与SyncAdapter集成
使用安卓安全和权限功能。
您对处理 Content Provider 所需的额外代码是正确的。
现在我正在做一个项目,我们有大约 20 张桌子。我为每个表创建了一个 DAO。基本上在内部使用内容提供程序。
DAO->Content Provider->SQL Lite Open Helper
Class XyzDao{
private final Context mContext;
XyzDao(Context context){
this.mContext=context;
}
public String getMyData(){
//content provider code
return myData;
}
public void setMyData(String x, int y, double z){
//content provider code to set the data
}
}
如果没有 Content Provider,我本可以完成,而现在使用当前的要求可以正常工作,但我仍然选择这条路线。你可能会问为什么?
- 异步操作
- 轻松与平台/云集成。
- 更少的代码更少的错误,所以更少的戏剧性(想想我是否必须实现我们刚刚讨论过的那些任务)
而且,最好的部分来自任何活动,我可以简单地使用我的 DAO 访问数据库。
或者,您可以直接从您的 DAO 访问 SQLLiteOpenHelper。
归根结底,每个选择都取决于您的业务需求。如果您有很多持久性对象,ORMLite 可能是一个不错的选择。