用于Android开发的任何好的ORM工具?

GWL*_*osa 282 java sqlite orm android crud

任何在Android上工作的人('gPhone')都拥有或知道我可以找到一个好的ORM工具的地方吗?代码用Java编写,数据库是SQLite.我想要找到的是一个给定对象定义的工具,可以自动生成表和CRUD函数(这将是非常棒的),或者除此之外,一个可以采用表定义,对象定义,并自动生成CRUD功能.问题是所有这一切都必须在Android框架内发生,Android框架有自己的数据库访问工作方式.

Gra*_*ray 111

以为我只是在这里添加我的$ 0.02关于我的ORMLite包:

http://ormlite.com/

它是Hibernate的轻量级替代品,使用原生Android OS数据库调用来支持Android上的SQLite.它还支持在其他体系结构上使用JDBC的许多其他数据库类型.我们有一个针对ORMLite问题的Android邮件列表.

  • 是的,它肯定比ActiveAndroid更大.当然还有更多功能.也是免费软件,而不是AA的许可证.但如果大小是目标,ORMLite不适合你. (7认同)
  • 确实是@SalmanPK.虽然有不同程度的精简.:-) (5认同)
  • @Gray Ironic,因为它应该是"Lite":P (4认同)

Ris*_*nha 66

这个问题不能老化,但建议的框架可以.所以,这里首先列出我在这样的框架中发现重要的内容进行比较:

  • 有Maven或Gradle神器吗?(这是一个很大的优势,取决于你是否使用maven或gradle,显然)
  • 代码是否可以通过简单的方式访问,包括快速概述提交以判断活动?(github上托管的代码对我来说是一个明确的优势,就此而言)
  • 发布管理:是否有发布/发布标签和工件?(有一些托管在github上,需要git克隆或提供主tarball下载 - 对我来说,如果不是偶数版本标签在README中设置和解决,那么大的减号)
  • 因为大小问题我提出了一些很容易得到的提示(我没有下载任何东西,所以从那些没有提供发布工件的项目中没有大小)

这里有一个框架列表,其中包含上述各点的注释.我更喜欢aBatis和Hadi,但我只添加了那些在2011年之后有一些活动的人.

我没有尝试过任何这些,但也许我可以通过列出当今活跃的项目来节省当前读者的时间.如果您知道其他项目满足上述某些要点并且有一些重要的发展(在一段时间内),请添加评论.

编辑(2013年11月):将列表更新为项目的当前状态.其中一些已将释放标记添加到其github repos以及Maven/Gradle支持.干得好!

编辑(2015年4月):更新了列表,添加了Sprinkles(根据@AndroidGecko的评论)和Realm.io.


Mar*_*ger 39

如果性能和代码大小很重要,请查看greenDAO.我是它的作者,我创建另一个ORM的动机是避免在热点中反映.事实证明,greenDAO可以比ORMLite快4倍.查看功能页面了解详细信息.

  • 看起来相当不错,但必须生成Dao's对我来说是一个岔路:( (5认同)
  • 是的,为开发人员生成代码是一个额外的步骤,但它可以为您节省大量的应用程序性能.引导和解析数据库结果都明显更快.其他工具依赖于反射,这在Android中是残酷的. (4认同)
  • @greenrobot你有一些使用你的lib的"大应用程序"展示吗? (3认同)

slf*_*slf 10

我不知道你要求的任何东西,但是如果您的架构要求是灵活的,那么您可以找到一种替代SQLite的替代方案.可能值得查看db4o:


Mic*_*rdo 9

ActiveAndroid (20美元)看起来可能正是您所需要的.

  • 我知道你在这里没有尝试任何狡猾的事情,但是当你在SO上提到你自己的产品时,你能否在你的帖子中透露你的联系?我知道你的名字在链接页面的页脚,但我们正试图打击[astroturfing](http://en.wikipedia.org/wiki/Astroturfing)(这不是),所以我们'要求每个人都遵循相同的披露准则.谢谢. (14认同)
  • ActiveAndroid现在免费开源 - http://pardom.github.com/ActiveAndroid/ (7认同)
  • 只是抬头,ActiveAndroid不是免费的. (4认同)

Ton*_*per 7

我喜欢ActiveAndroid.它似乎是专门为Android编写的.这对我来说是个好消息.

我有一些Ruby on Rails的经验,如果你喜欢ActiveRecord的Rails方式,你可以很快地使用这个库.

https://www.activeandroid.com/


Cha*_*ayy 6

我也在寻找Android上的ORM.我测试了ActiveAndroid,NeoDatisdb4o,我认为我将使用最后两个中的一个.

NeoDatis和db4o非常相似,所以我想要一些建议来选择最好的.是否有人在他的项目中使用其中一个?我会将它用于免费和付费的应用程序,但似乎这两个没有Android的许可限制.

有一个标杆在这里,似乎说NeoDatis比db4o的速度更快,但我不知道我们是否能在此基础上我的意见.


Ahm*_*gle 6

https://github.com/ahmetalpbalkan/orman

Orman框架可能对您有所帮助.它专为此而设计,非常小而且实用.


Dav*_*ins 2

Aptana 的ActiveRecordJS是一个 Javascript ORM,应该在 gPhone 上运行。它旨在与 Jaxer 和 Gears 配合使用。当您使用 Jaxer 适配器时,您可以连接到 SQLLite。

更新:我认为我没有说清楚,但 ActiveRecordJS 是一个运行客户端的 ORM,这对您在 gPhone 上可能是一个优势。