Android的更高级别的数据库层?

有没有好的数据库抽象层/对象关系映射/ ActiveRecord实现/无论他们被称为Android? 我知道, db4o是官方支持,但它有相当大的足迹,我宁愿使用更传统的数据库( SQLite )。

Solutions Collecting From Web of "Android的更高级别的数据库层?"

我是ORMLite的主要作者,它被devise成小的[ISH],但仍然提供更高层次的function。 ORMLite调用本地Android OS数据库API来支持其ORMfunction。 有关一般信息请参阅以下内容

http://ormlite.com/sqlite_java_android_orm.shtml

以下是一些Android示例应用程序:

http://ormlite.com/docs/android-examples

我尝试了糖的ORM,这是非常基本的(和易于使用),但它符合我的需求。

糖网站

有一个“android-active-record”项目提供了访问Android SQLite数据库的ActiveRecord抽象。 它可以在这里find: http : //code.google.com/p/android-active-record

它允许在对数据库实体执行CRUD操作时消除大部分的样板代码,并且还最小化了创build/维护数据库结构的努力

尝试ActiveAndroid 。 它是免费和开源的( Apache版本2.0 )。

从网站:

ActiveAndroid是一个活跃的logging风格的ORM(对象关系映射器)。 […] ActiveAndroid允许你保存和检索SQLite数据库logging,而不必写一个单一的SQL语句。 每个数据库logging都被整齐地包装到一个类中,像save()和delete()这样的方法。

访问数据库是一个麻烦,至less可以说,在Android。 ActiveAndroid照顾所有的设置和杂乱的东西,所有只需几个简单的configuration步骤。

如果性能和规模很重要,你应该看看我们的开源ORM工具greenDAO 。 我们写这个是因为我们不想在速度上妥协。 其他工具很大程度上依赖于reflection,这在Android上非常慢。 尽pipe规模很小(<100k),但它支持关系,查询构build者等。

无耻的插件,但我一直在研究一个新的开源Android框架称为Infinitum 。 它的一个主要特点是具有与Hibernate类似的标准API和一些其他漂亮function(关联,延迟加载等)的ORM。 目前还处于初期阶段,但我认为这个过程非常好。

我已经为android写了一个新的ORM,它的目标是尽可能简单的实现。 它支持列表和SQL自由迁移几件事情,我总是发现有其他库中的开销。

http://www.rushorm.com/

我面临同样的问题,并看着android-active-record和ActiveAndroid。 我发现android-active-record没有处理我关心的事情(例如关系),而ActiveAndroid也不是免费的。 所以,我决定写我自己的图书馆。 它被称为AndroidRecord,它在GitHub上托pipe ,你可以自由地使用它(我想我要去用MIT许可证)。 我每天都用这个,我很满意,但我很想得到反馈。

如果您需要知道如何使用它,我正在处理文档。 如果你马上需要的话,你可以看看这个蹩脚的示例项目 ,它应该足以让你的脚趾头。你当然也可以给我发电子邮件。

还有Neodatis和Perst(Lite)。
我一年前曾经和珀斯玩过,结论是不值得的。
毕竟,a)Android运行在一个相当有限的设备上,每个应用程序具有〜16mb的堆空间,并且b)您的客户真的会喜欢性能和低功耗。
所以我的build议是与SQLite和手写SQL。 这并不难,Android SDK提供的包装真的很好。

编辑:2012年的build议将是使用DroidParts (这是我的项目)的ORM组件。

我前段时间比较了ormlite和greendao的基本知识。 你可能想看看那里 。 我打算在不久的将来再写一些更先进的东西,但现在这只是一个基本的东西。 在我自己的项目中,我正在使用GreenDAO。

看看Androrm 。 这是开源的,有据可查( 见这里 )。 如果你曾经使用Django,你会注意到,它的语法非常相似。

Androrm还支持最常见字段types的抽象类,以及关系字段。 通过这种方式,您可以以非常轻松的方式查询您的数据,而只需要很less的努力。

SQLite显式地是Android的一部分:

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html

但是,您可能必须创build自己的抽象层(用于简单查询的查询生成器),否则将处理SQL。

也许http://developer.android.com/reference/android/database/sqlite/SQLiteQueryBuilder.html是你需要什么&#xFF1F;