【问题标题】:Android singleton class and database, accessing and updating most frequently used objectsAndroid单例类和数据库,访问和更新最常用的对象
【发布时间】:2016-04-16 08:45:24
【问题描述】:

我正在从事一个项目,其中我有一个包含最常用对象的单例类。现在我想使用任何好的 ORM 库创建一个数据库。

有可能吗?

如果我在单例中更新或删除一个对象,它也应该分别在 DB 中更新或删除,而无需编写任何查询或显式调用任何 ORM 库方法。哪个 ORM 库支持这个功能?如果可能,请提供任何教程链接

如果这是不可能的,那是否意味着我每次都必须分别更新单例和数据库中的对象,这感觉有点不好。

【问题讨论】:

  • 对对象的任何小更新是否会触发持久性,或者您还需要一些事务语义,从而应用程序指定的一组一致的(删除、更新、插入)操作一起反映在数据库中?如果稍后,您可能需要一些额外的调用来发出信号持久性。

标签: android database orm singleton


【解决方案1】:

试试 Realm,它能够实现您想要实现的目标。 https://realm.io/docs/java/latest/

【讨论】:

  • 感谢@jacktech24,Realm 已经接近我所需要的了。但它仍处于测试阶段
  • 在测试版中是的,但已经被大公司用于生产,我也使用了半年多,没有任何问题
  • Realm 不仅仅是像 ORMLite 或 GrrenDAO 这样的库,它是一个创建自己的 DB 文件的完整解决方案。我不太担心,因为我以前没有使用过它,也不知道它的优缺点和性能
  • 性能稍好,使用的存储空间比sqlite少。您可以在 Internet 上阅读与 sqlite 解决方案的比较。从我的实际使用情况来看,它在处理迁移方面要好得多,并且在更改传播和内存使用方面绝对最好(它会延迟加载),并且大部分时间都可以在 UI 线程上用于读取操作,因为它的速度非常快
  • 在 SQLite orm 框架中,我使用的是 DBFlow,但更改的通知/传播并不是那么容易和好
【解决方案2】:

可以使用 Android 的 Room Persistence LibraryArchitecture Components 来完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 2016-08-09
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    相关资源
    最近更新 更多