Любые хорошие инструменты ORM для разработки Android?

Любой, кто работает на Android ( "gPhone" ), знает или знает, где я могу найти для него хороший инструмент ORM? Код написан на Java, а база данных - SQLite. То, что я хотел бы найти, - это инструмент, который дает определение объекта, может автоматически генерировать таблицы и функции CRUD (что было бы замечательно) или, если это не удалось, инструмент, который может принимать определение таблицы, определение объекта, и автоматически генерировать CRUD-функциональность. В том случае, что все это должно произойти в рамках Android-платформы, которая имеет свои собственные соглашения о том, как работает доступ к базе данных.

Ответ 2

Думаю, я просто добавлю свои 0,02 доллара о пакете ORMLite.

Это легкая замена Hibernate и использует собственные вызовы базы данных ОС Android для поддержки SQLite на Android. Он также поддерживает множество других типов баз данных, использующих JDBC на других архитектурах. У нас есть список рассылки Android для вопросов ORMLite.

Ответ 3

Этот вопрос не может возрасти, но предлагаемые рамки могут. Итак, вот первый список того, что я считаю важным в таких рамках для сравнения:

  • Есть ли артефакт Maven или Gradle? (что большой плюс в зависимости от того, используете ли вы maven или gradle, очевидно)
  • Доступен ли код простым способом, включая быстрый обзор, посвященный суждению о деятельности? (код, размещенный на github, является для меня определенным плюсом).
  • Управление версиями: есть ли в нем теги релизов/выпуска и артефакты? (некоторые из них размещены на github и требуют либо git clone, либо предлагают мастер-архив для загрузки - для меня большой минус, если даже теги релиза не установлены и не адресованы в README)
  • В качестве размера я задал некоторые подсказки, где было легко добраться (я ничего не загружал, поэтому из тех проектов, которые не предлагают артефактов выпуска, нет размеров)

И вот список фреймворков с примечаниями по указанным выше пунктам. Я снова посмотрел на aBatis и Hadi, но добавил только те, у кого была активность после 2011 года.

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

EDIT (2013 ноябрь): обновил список до текущего состояния проектов. Некоторые из них добавили теги релиза в свои репозитории github, а также поддержку Maven/ Gradle. Хорошая работа!

EDIT (2015 Апр): обновлен список, добавлены спринклеры (согласно комментарию @AndroidGecko) и Realm.io.

Ответ 4

Если производительность и размер кода имеют значение, проверьте greenDAO. Я автор этого, и моя мотивация создать еще одну ОРМ заключалась в том, чтобы избежать отражения в горячих точках. Оказалось, что greenDAO может быть в 4 раза быстрее, чем ORMLite. Подробнее о странице .

Ответ 5

Я ничего не знаю о том, что именно вы просите, но есть альтернатива SQLite, которая может оказаться полезной, если ваши требования к архитектуре гибкие. Возможно, стоит проверить db4o:

Ответ 6

ActiveAndroid ($ 20) выглядит так, как будто это именно то, что вам нужно.

Ответ 7

Мне понравился ActiveAndroid. Это написано специально для Android. Это кажется мне плюсом.

У меня есть опыт Ruby on Rails, и если вам нравится Rails-способ ActiveRecord, вы можете очень быстро перейти с этой библиотекой.

https://www.activeandroid.com/

Ответ 8

Я также ищу ORM на Android. Я тестировал ActiveAndroid, NeoDatis и db4o, и я думаю, что я воспользуюсь одним из двух последних.

NeoDatis и db4o действительно похожи, поэтому я бы хотел, чтобы некоторые советы выбрали лучший. Кто-то использует один из них в своем проекте? Я буду использовать его для бесплатного и платного приложения, но, похоже, у них нет никаких ограничений на лицензии для Android.

Существует эталон здесь, который, кажется, говорит, что NeoDatis быстрее, чем db4o, но я не знаю, можем ли мы основывать мой мнение об этом.

Ответ 9

https://github.com/ahmetalpbalkan/orman

Структура Orman может помочь вам. Он специально разработан для этого и очень мал и полезен.

Ответ 10

Еще один новичок: android-active-record. Это очень легкая и удобная в использовании платформа persistence для Android под управлением SQLite http://code.google.com/p/android-active-record/

Ответ 11

ActiveRecordJS от Aptana - это ORM Javascript, который должен работать на gPhone. Он предназначен для работы с Jaxer и Gears. Когда вы используете Jaxer Adapters, вы можете подключиться к SQLLite.

UPDATE: Я не думаю, что я дал понять, но ActiveRecordJS - это ORM, который работает на стороне клиента, что может быть для вас преимуществом на gPhone.

Ответ 12

http://hadi.sourceforge.net

Этот инструмент очень прост и прост в использовании.

Ответ 13

Я разработал собственную реализацию JPA ORM для Android. Он еще не полностью дополнен, но вы можете аннотировать класс с аннотациями @Entity, @Id, @Column, и вы получаете объекты JPA, которые могут быть сохранены и извлечены из базы данных SQLite. Ему нужно еще несколько функций и очистки, прежде чем я опубликую их публике, но, если будет достаточно интереса, это может ускорить мои усилия.

Ответ 14

Несмотря на то, что это старый пост, тема по-прежнему актуальна. Поэтому я хочу поделиться интересной статьей и хорошим подходом к решению большинства вопросов, упомянутых в вопросе:

http://blog.codecentric.de/en/2011/04/android-persistence-accelerated-small-inhouse-orm/

Надеюсь, что кто-нибудь найдет это полезным как я!

Ответ 15

Моя DroidParts/ http://droidparts.org/ только что достигнута v0.5. Это библиотека DI/ORM и многое другое.
Немного документации, но включает пример приложения.

Ответ 16

Был отрицательный опыт работы с db4o (v. 8): индексация не работала должным образом (исключение и т.д.). Поэтому мне не удалось как избежать создания дубликатов в чужих таблицах при наличии объекта в структуре объекта. Более подробное объяснение в question. Надеюсь, в один прекрасный день было бы лучше.