我不认为,您可以与带有 Content Provider 的 ORM 进行比较。ORMLite 向用户提供以下功能链接,并在开发时具有完全独立的目标。
但除了你提到的事情之外,它们是内容提供者的其他几个好处。
如果您想在多个应用程序或进程之间共享日期。可能现在您没有任何计划这样做,但似乎您的应用程序在数据库上很重,并且将来如果您计划与第三方或您的另一个应用程序共享您的数据,您可以选择与内容提供商。
内容提供程序在所有 Android 版本中都是标准的,这也意味着您的应用程序是安全的。我很确定 ORMLite 也很稳定。但是你真的想冒这个风险吗,特别是如果这不能节省你的时间或者你没有任何业务要求这样做。Android API 已经支离破碎,您还想在此基础上承担另一项工作吗?
如果您想将数据上传到云端,可以轻松与SyncAdapter集成
使用 android 安全和权限功能。
您对处理 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 可能是一个不错的选择。