任何在Android上工作的人('gPhone')都拥有或知道我可以找到一个好的ORM工具的地方吗?代码用Java编写,数据库是SQLite。我想要找到的是一个给定对象定义的工具,可以自动生成表和CRUD函数(这将是非常棒的),或者除此之外,一个可以采用表定义,对象定义,并自动生成CRUD功能。问题是所有这一切都必须在Android框架内发生,Android框架有自己的数据库访问工作方式。
答案 0 :(得分:110)
以为我只是在这里添加我的$ 0.02关于我的ORMLite包:
它是Hibernate的轻量级替代品,使用原生Android操作系统数据库调用来支持Android上的SQLite。它还支持在其他体系结构上使用JDBC的许多其他数据库类型。我们对ORMLite问题有Android mailing list。
答案 1 :(得分:66)
这个问题不能老化,但建议的框架可以。所以,这里首先列出我在这样的框架中发现重要的内容进行比较:
以下是一个框架列表,其中包含上述各点的注释。我查了一些更像aBatis和Hadi但我只添加了那些在2011年之后有一些活动的人。
我还没有尝试过这些,但也许我可以通过列出当今活跃的项目来节省当前读者的时间。如果您知道其他项目满足上述某些要点并且有一些严重的发展(在一段时间内),请添加评论。
EDIT(2013年11月):将列表更新为项目的当前状态。其中一些已将释放标记添加到其github repos以及Maven / Gradle支持。干得好!
EDIT(2015年4月):更新了列表,添加了Sprinkles(根据@AndroidGecko的评论)和Realm.io。
答案 2 :(得分:39)
如果效果和代码大小很重要,请查看greenDAO。我是它的作者,我创建另一个ORM的动机是避免在热点中反映。事实证明,greenDAO可以比ORMLite快4倍。查看feature page了解详情。
答案 3 :(得分:10)
我不知道你要求的任何东西,但是如果你的架构要求很灵活,你可能会发现SQLite的另一种选择。可能值得查看 db4o :
答案 4 :(得分:9)
ActiveAndroid ($ 20)看起来可能正是您所需要的。
答案 5 :(得分:7)
我喜欢ActiveAndroid。它似乎是专门为Android编写的。这对我来说是个好消息。
我有一些Ruby on Rails体验,如果你喜欢ActiveRecord的Rails方式,你可以很快地使用这个库。
答案 6 :(得分:6)
我也在寻找Android上的ORM。我测试了ActiveAndroid,NeoDatis和db4o,我认为我将使用最后两个中的一个。
NeoDatis和db4o非常相似,所以我想要一些建议来选择最好的。是否有人在他的项目中使用其中一个?我会将它用于免费和付费的应用程序,但似乎这两者对Android没有任何许可限制。
有一个基准here似乎说NeoDatis比db4o快,但我不知道我们是否可以根据这个看法。
答案 7 :(得分:6)
https://github.com/ahmetalpbalkan/orman
Orman框架可能对您有所帮助。它专为此而设计,非常小而且实用。
答案 8 :(得分:3)
还有一个新手:android-active-record。 它非常轻量级,易于使用SQLite支持的Android持久性框架 http://code.google.com/p/android-active-record/
答案 9 :(得分:2)
ActiveRecordJS是一个应该在gPhone上运行的Javascript ORM。它旨在与Jaxer和Gears一起使用。使用Jaxer适配器时,可以连接到SQLLite。
更新:我认为我没有说清楚,但ActiveRecordJS是一个运行客户端的ORM,这对gPhone来说可能是一个优势。
答案 10 :(得分:2)
此工具非常简单易用。
答案 11 :(得分:1)
我已经为Android开发了自己的JPA ORM实现。它还没有完整的功能完整,但您可以使用@ Entity,@ Id,@ Column注释来注释类,并且您可以获得可以从SQLite数据库存储和检索的JPA实体。它需要更多的功能和在我将其发布给公众之前进行清理,但如果有足够的兴趣,它可能会加快我的努力。
答案 12 :(得分:1)
尽管这是一篇旧帖子,但该主题仍然具有相关性。因此,我想分享一篇有趣的文章和解决问题中提到的大多数问题的好方法:
http://blog.codecentric.de/en/2011/04/android-persistence-accelerated-small-inhouse-orm/
希望有人觉得这和我一样有用!
答案 13 :(得分:1)
我自己的DroidParts /http://droidparts.org/刚刚达到v0.5。这是一个DI / ORM库&更多。
文档不多,但包含示例应用程序。
答案 14 :(得分:0)
有db4o的负面体验(第8节):索引无法正常工作(异常等)。因此,当对象结构中有对象时,我没有管理如何避免在外表中创建重复项。我question中有更详细的解释。希望有一天会更好。