用于Android开发的任何好的ORM工具?
任何在Android(gPhone)上工作的人都知道有一个地方可以find一个好的ORM工具吗? 代码是用Java编写的,数据库是SQLite。 我想find的是一个给定对象定义的工具,可以自动生成表格和CRUD函数(这会很棒),或者,除此之外,还可以使用表格定义,对象定义,并自动生成CRUDfunction。 蹭的是,所有这一切都必须发生在Android框架内,它有自己的约定如何数据库访问的作品。
这个线程可能会给你一些探索: hibernate的轻量级select
以为我只是在这里添加$ 0.02我的ORMLite包:
它是Hibernate的轻量级替代品,并使用原生Android OS数据库调用来支持Android上的SQLite。 它还支持在其他体系结构上使用JDBC的许多其他数据库types。 我们有ORMLite问题的Android邮件列表 。
这个问题不能年龄化,但build议的框架可以。 所以,这里首先列出一些我认为在这样的框架中比较重要的东西:
- 有没有Maven或Gradle神器? (这显然是一个很大的优势,取决于你使用maven还是gradle)
- 代码是否可以通过简单的方式访问,包括快速判断活动的概述? (在这个问题上,github上的代码对我来说是一个明显的优势)
- 发布pipe理:有发布/发布标签和工件吗? (有一些是在github上托pipe,需要git克隆或提供主要tarball下载 – 对我来说,如果甚至没有发布标签设置和解决在README中大减)
- 作为大小的事情,我提出了一些提示,很容易得到(我没有下载任何东西,所以从没有提供释放工件的项目没有大小)
这里是一个框架列表,上面提到了注释。 我查了一些更像巴蒂斯和哈迪,但我只加了那些在2011年之后有一些活动。
- http ://ormlite.com,Maven artifact,52 kB,SVN,网站是…很难但似乎有很多的例子,根据http://ormlite.com/changelog.txt最后的版本是从2013年的4.48开始,; https://github.com/j256/ormlite-core (发布标签),上次活动2015年3月
- http://greendao-orm.com ,维护好, Maven神器 ,重点:性能快,体积小,内存消耗less。 Github: https : //github.com/greenrobot/greenDAO/ (发布标签,> 2300颗星),上次活动2014年11月
- https://github.com/roscopeco/ormdroid ,体型小,上次活动2014年8月
- http : //www.activeandroid.com,https://github.com/pardom/ActiveAndroid (> 2300星),良好的维护,社区,没有发布标签(下载点到主tarball),Maven神器,最后的活动2014年10月
- http://droidparts.org,https : //github.com/yanchenko/droidparts (发布标签,> 600颗星),还dependency injection,Maven神器,积极维护
- http : //www.androrm.com,https://github.com/androrm/androrm (发布标签),最后的活动2014年1月2日(github)
- https://github.com/emilsjolander/sprinkles (发布标签,> 600颗星)上次活动2014年5月,Maven神器(感谢@AndroidGecko)
- http : //realm.io,https : //github.com/realm/realm-java不仅取代了ORM,还取代了也适用于iOS(发布标签,> 1600颗星)的SQLite
我还没有尝试过其中的任何一种,但也许我可以通过列举现今的活跃项目来节省时间。 如果您知道其他满足以上几点的项目,并且正在进行一些严重的开发(请稍候),请添加评论。
编辑(2013年11月):更新名单到项目的现状。 其中一些已经添加释放标签到他们的github回购站以及Maven / Gradle支持。 好工作!
编辑(2015年4月):更新了列表,添加了Sprinkles(根据@AndroidGecko的评论)和Realm.io。
如果性能和代码大小重要,检查出greenDAO 。 我是它的作者,我创build另一个ORM的动机是为了避免在热点中反思。 事实certificate,greenDAO可以比ORMLite快4倍。 有关详细信息,请查看function页面 。
我不知道任何正是你所要求的东西,但是如果你的架构需求是灵活的,你可能会发现SQLite的另一种select。 这可能是值得检查db4o :
- Android的db4o
- 代码比较的例子
ActiveAndroid ($ 20)看起来可能正是你所需要的。
我喜欢ActiveAndroid。 它看起来是专门为Android编写的。 这对我来说是一种加分。
我有一些Ruby on Rails的经验,如果你喜欢Rails的ActiveRecord的方式,你可以很快移动这个库。
https://github.com/ahmetalpbalkan/orman
Orman框架可能会帮助你。 它是专门为此而devise的,非常小巧而实用。
我也在Android上寻找ORM。 我testing了ActiveAndroid , NeoDatis和db4o ,我想我会用最后两个之一。
NeoDatis和db4o真的很相似,所以我想要一些build议来select最好的。 有人在他的项目中使用其中之一? 我将使用它免费和付费的应用程序,但似乎这两个没有任何Android的许可证限制。
在这里有一个基准,似乎说NeoDatis比db4o快,但我不知道我们是否可以根据我的意见。
还有一个新手:android-active-record。 这是非常轻量级的,易于使用的SQLite持久性框架支持SQLite http://code.google.com/p/android-active-record/
Aptana的ActiveRecordJS是一个应该在gPhone上运行的Javascript ORM。 它旨在与Jaxer和Gears一起工作。 当您使用Jaxer适配器时,您可以连接到SQLLite。
更新:我不认为我说清楚,但ActiveRecordJS是一个运行客户端的ORM,这可能是你在gPhone上的优势。
这个工具非常简单,易于使用。
我已经开发了自己的Android的JPA ORM的实现。 它还没有完整的function,但你可以使用@Entity,@Id,@Column注释来注释类,并且你可以获得可以从SQLite数据库存储和检索的JPA实体。 在我发布给公众之前,需要更多的function和清理,但是如果有足够的兴趣,这可能会加速我的努力。
尽pipe这是一个旧的post,但这个话题仍然是相关的。 因此,我想分享一个有趣的文章和很好的方法来解决问题中提到的大多数问题:
http://blog.codecentric.de/en/2011/04/android-persistence-accelerated-small-inhouse-orm/
希望有人认为这是有用的自己!
我自己的DroidParts / http://droidparts.org/刚刚达到了v0.5。; 这是一个DI / ORM库和更多。
没有太多的文档,但包括一个示例应用程序。
对db4o(第8版)有负面的经验:索引无法正常工作(exception等)。 所以我没有pipe理如何避免在对象结构中有对象时在外部表中创build重复项。 在我的问题更详细的解释。 希望有一天会更好。