java - 如何在Android应用程序中构建SQLite访问?是否使用 ORM(Lite)?

标签 java android sqlite orm ormlite

我正在与一位同事一起构建一个 Android 应用程序,其中将包含一个包含大约 15 个表的数据库。根据 Google 的 Android 开发文档,我们现在编写了几个类型类、一个数据库帮助程序、一个数据提供程序,并且为每个类型类还编写了一个适配器。

这可行,但我的主要问题是,为了添加数据库表,我需要创建一个新的类型类,编辑数据库帮助程序和提供程序,并创建一个新的适配器。看到这很麻烦而且容易出错,我认为这是 ORM 的完美秘诀。

环顾四周,我发现唯一有意义的项目是 ORMLite 。但环顾四周,我什至没有感觉到 ORMLite 是 Android 中处理 SQLite 的常用方法。

所以我的问题如下:

  1. 在 Android 应用程序中处理相当复杂的数据库最常用/最好的方法是什么?自制类还是像 ORMLite 这样的 ORM?
  2. 像 ORMLite 这样的 ORM 是否会让我的 Android 应用程序比我自己编写的访问器慢很多?
  3. 对于在 Android 应用中访问 SQLite,您还有其他建议(其他 ORM 或技术)吗?

最佳答案

这并不是一个真正的答案,而只是我在 Android 上使用 DB 的经验的反馈。

我问了自己同样的问题,你是对的,这不太清楚。

What is the most-used/best way of handling rather complex DBs within an Android app? Self-made classes or an ORM like ORMLite?

我认为在大多数情况下,人们会尝试避免在应用程序中使用复杂的数据库,当他们做不到时,他们可能会采用 Android 方式(自制类)。 (只是我的建议)

Does an ORM like ORMLite make my Android app a lot slower than writing my own accessors?

如果你所说的复杂是指关系,即同一类型的大量 af 读/写。 Ormlite 肯定会减慢你的应用程序的速度。 (我的经验)。当您这样做时,访问肯定会更快(因为您不是程序或猴子),但实现和维护的时间肯定会更长。

Do you have any other recommendations (other ORMs or techniques) for accessing SQLite in Android apps?

这只是我的建议,但如果您可能遇到完整或部分复制数据库(基于服务器)的情况,您必须问您:

“我的用户真的可以在没有网络的情况下使用该应用程序吗?” 如果他不能,请优化您对服务器的请求,但不要创建本地数据库。维护起来会更快、更简单。

最后,我从未测试过此类解决方案,但这应该是一种“中间方式” --> CouchDB我认为他们正在开发一个库(目前为测试版)....

希望对你有帮助。

关于java - 如何在Android应用程序中构建SQLite访问?是否使用 ORM(Lite)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18946649/

相关文章:

java - gwt - 调用异步函数时在 Web 模式下出错

Java 可克隆或复制构造函数,为什么我要使用其中任何一个?这些策略实际上有什么作用?

android - 如何在单个改造调用中解析不同的 xml 数据

python - SQLite Python 中的变量替换

c++ - 无法在 SQLite 的命令行上访问表

java - SIP 替代 TAPI?

java - 重新启动 Openshift MySQL 卡带时出错

android - 通过代码查看android中是否勾选了 "Unknown Sources"?

android - 它可以在 Android 上播放 flash 文件吗?

php - 在 SQLite3 中避免 SQL 注入(inject)