Подтвердить что ты не робот

Уровень данных более высокого уровня для Android?

Есть ли хорошие абстракции базы данных/реляционные сопоставления объектов/реализации ActiveRecord/что бы они ни называли для Android? Я знаю, что db4o официально поддерживается, но имеет довольно большой след, и я предпочел бы использовать более обычную базу данных (SQLite).

4b9b3361

Ответ 1

Я являюсь главным автором ORMLite, который был разработан как маленький [ish], но все же обеспечивает более высокий уровень функциональности. ORMLite выполняет вызовы в собственные API баз данных ОС Android для поддержки своих функций ORM. Для общей информации см. Следующие сведения

http://ormlite.com/sqlite_java_android_orm.shtml

Вот некоторые приложения для Android:

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

Ответ 2

Я попробовал Sugar ORM, который очень простой (и простой в использовании), но он работал для моих нужд.

Сахарный сайт

Ответ 3

Попробуйте ActiveAndroid. Это бесплатный и открытый исходный код (Apache Version 2.0).

С веб-сайта:

ActiveAndroid - активный ORM-стиль записи (объект реляционный картограф). [...] ActiveAndroid позволяет вам сохранять и извлекать записи базы данных SQLite, не записывая одиночный оператор SQL. Каждая запись базы данных аккуратно завернута в класс с такими методами, как save() и delete().

[...] Доступ к базе данных - это, по меньшей мере, хлопот в Android. ActiveAndroid заботится обо всех настройках и беспорядочных вещах, и все с помощью всего лишь нескольких простых шагов конфигурации.

Ответ 4

Существует проект "android-active-record", который обеспечивает абстракцию ActiveRecord для доступа к базе данных Android SQLite. Он доступен здесь: http://code.google.com/p/android-active-record

Это позволяет устранить большую часть кодирования кода при выполнении операций CRUD для объектов базы данных, а также минимизирует усилия для создания/поддержания структуры базы данных.

Ответ 5

Если производительность и размер имеют значение, вы должны взглянуть на наш инструмент ORM с открытым исходным кодом greenDAO. Мы написали это, потому что мы не хотели идти на компромисс по скорости. Другие инструменты сильно зависят от рефлексии, которая очень медленная на Android. Несмотря на крошечный размер (< 100k), он поддерживает отношения, построители запросов и т.д.

Ответ 6

Бесстыдный плагин, но я работаю над новой инфраструктурой Android с открытым исходным кодом под названием Infinitum. Одной из его основных особенностей является ORM, который имеет API критериев, подобный Hibernate, и несколько других отличных функций (ассоциации, ленивая загрузка и т.д.). Он все еще находится на ранних стадиях, но я думаю, что он идет очень хорошо.

Ответ 7

Я написал новый ORM для android, который был нацелен и как можно проще реализовать. Он поддерживает списки и бесплатную миграцию SQL. Несколько вещей, которые я всегда нашел, имели накладные расходы в других библиотеках.

http://www.rushorm.com/

Ответ 8

Там также Neodatis и Perst (Lite).
Я играл с Перстом год назад и пришел к выводу, что это не стоит. В конце концов, a) Android работает на довольно ограниченном устройстве с ~ 16 мб кучи места на приложение и b) Вы, клиенты, действительно цените производительность и низкое энергопотребление.
Поэтому мой совет - пойти с SQLite и написанным вручную SQL. Это не сложно, и обертки, предоставляемые Android SDK, действительно приятны.

EDIT: в 2012 году совет должен был использовать компонент ORM DroidParts (это мой проект).

Ответ 9

Я столкнулся с той же проблемой и посмотрел как на Android-активную запись, так и на ActiveAndroid. Я обнаружил, что андроид-активная запись не обрабатывала то, о чем я заботился (например, отношения), а ActiveAndroid не является бесплатным. Поэтому я решил написать свою собственную библиотеку. Он называется AndroidRecord, и размещен на GitHub, и вы можете делать с ним все, что хотите (я думаю, что я собираюсь пойти с Лицензия MIT). Я использую это каждый день, и я доволен этим, но мне бы хотелось получить обратную связь.

Если вам нужно знать, как его использовать, я работаю над документацией. Если вам это нужно сразу, вы можете проверить этот примерный примерный проект, которого должно быть достаточно, чтобы окунуть ваши пальцы. Вы также можете отправить мне по электронной почте Конечно.

Ответ 10

Посмотрите Androrm. Он с открытым исходным кодом и хорошо документирован (см. Здесь). Если вы когда-либо работали с django, вы заметите, что синтаксис очень похож.

Androrm также поддерживает классы абстракции для наиболее распространенных типов полей и реляционных полей. Таким образом, вы можете легко запрашивать свои данные с очень небольшим усилием на вашей стороне.

Ответ 11

Я сравнивал основы ormlite и greendao некоторое время назад. Возможно, вы захотите посмотреть там. В ближайшем будущем я планирую написать некоторые последующие более продвинутые материалы, но пока это всего лишь базовый материал. В моем собственном проекте я использую GreenDAO.

Ответ 12

SQLite явно входит в состав Android:

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

Однако вам, возможно, придется создать свой собственный уровень абстракции (построитель запросов для простых запросов) или иначе использовать SQL.

Возможно, http://developer.android.com/reference/android/database/sqlite/SQLiteQueryBuilder.html - это то, что вам нужно?