是否有任何支持 SQLite(在 Android 上)的良好 ORM(最好是 JPA 实现)? [关闭]
Posted
技术标签:
【中文标题】是否有任何支持 SQLite(在 Android 上)的良好 ORM(最好是 JPA 实现)? [关闭]【英文标题】:Are there any good ORMs (preferably JPA implementations) that support SQLite (on Android)? [closed] 【发布时间】:2011-03-03 23:46:13 【问题描述】:我不久前发现了一个post,它解决了一个类似的问题,但我认为它有点过时了。我意识到 JPA 的实现往往更重/密集,所以如果您知道任何轻量级(非 JPA)ORM,我肯定会感谢您的意见。我确实在另一篇文章中看到了关于 Activeandroid 的答案,很想知道是否有人尝试过。
更新:
最后,我决定采用更轻量级的解决方案,并选择了DB4O。到目前为止,我对自己的选择感到非常满意。它是extremely easy to use,需要最少的配置。该网站包含大量信息,包括sample projects 和深入的tutorial,几乎涵盖了开发人员可能需要了解的有关 DB4O 的所有信息。哦,我有没有提到它是免费的(不像其他一些替代品...coughActiveDroidcough)?
【问题讨论】:
我很好奇你是否看过 ORMLite 以及为什么不选择它@Andrey? @Gray - 我确实看过它。事实上,我的一个朋友在他的一个安卓应用程序中使用了它并推荐了它。我选择 DB4O 的主要原因是因为它几乎需要零配置。第二个原因是不愿意学习一个与 JPA 非常相似的新框架。还有第三个原因:希望探索关系数据库的替代方案,看看它在实践中的表现如何。 @Gray - 扩展我的第二个原因:一方面,ORMLight 遵循类似于 JPA 的模式,但另一方面,虽然概念相同,但语法不同,因为我处理每天在工作中使用 JPA,我不想将自己与一组做同样事情的新注释混淆。 所有充分的理由@Andrey。非常感谢您的回复。我只是好奇而已。 :-) ORMLite 目前仅支持 JPA 注释的一个子集。如果有什么可以改进的,请告诉我。 【参考方案1】:关于 JPA 实现,至少有一个 third party Dialect for SQLite 用于 Hibernate。我不是 100% 确定,但 EclipseLink 似乎也是一种选择(尽管 SQLite is not officially supported)。
但是对于Android开发,我肯定会检查ActiveAndroid。
以防万一,这里有一些其他选择:jPersist、Ebean、Dreamsource ORM(查看 TSS 上的the announcement)。
【讨论】:
我支持 ActiveAndroid 的评论 提供的许多链接现在都已损坏 DataNucleus JPA 已毫无问题地与 SQLDroid(Android 上的 SQLite)一起使用,事实上,对 SQLDroid 进行了许多更改以支持 JPA 实现所需的更多 JDBC 规范,特别是使用 DataNucleus JPA Cmobilecom JPA:支持android sqlite和java jdbc,完全实现JPA 2.2,约500K。【参考方案2】:ORMLite 不完全符合 JPA,但它确实支持 Android 上的 Sqlite。它调用原生 Android 操作系统数据库 API 以支持其 ORM 功能。我们有大量的 Android 用户使用它非常成功。
http://ormlite.com/sqlite_java_android_orm.shtml
【讨论】:
ormLiite 不是 JPA。至少它应该实现 JPA 接口。 人力资源部。不确定我是否知道。我会调查的。谢谢@Sunnyday。【参考方案3】:BatooJPA 是唯一符合 JPA 2.0 规范的全功能选项。对于移动平台,应考虑 CPU 消耗,因为电池寿命有限 CPU 功率等。 BatooJPA 在需要完整规格且 CPU 资源很重要的情况下是完美的。对于 SQLite 案例,只要您可以提供 JDBC 驱动程序,Batoo JPA 将完成剩下的工作。
【讨论】:
以上是关于是否有任何支持 SQLite(在 Android 上)的良好 ORM(最好是 JPA 实现)? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
支持 UPSERT 的 Android SQLite ORM? [关闭]
Android - 拉取 SQlite 数据库 android 设备