Любой, кто работает на Android ( "gPhone" ), знает или знает, где я могу найти для него хороший инструмент ORM? Код написан на Java, а база данных - SQLite. То, что я хотел бы найти, - это инструмент, который дает определение объекта, может автоматически генерировать таблицы и функции CRUD (что было бы замечательно) или, если это не удалось, инструмент, который может принимать определение таблицы, определение объекта, и автоматически генерировать CRUD-функциональность. В том случае, что все это должно произойти в рамках Android-платформы, которая имеет свои собственные соглашения о том, как работает доступ к базе данных.
Любые хорошие инструменты ORM для разработки Android?
Ответ 1
Этот поток может дать вам возможность изучить: Легкие альтернативы для спящего режима
Ответ 2
Думаю, я просто добавлю свои 0,02 доллара о пакете ORMLite.
Это легкая замена Hibernate и использует собственные вызовы базы данных ОС Android для поддержки SQLite на Android. Он также поддерживает множество других типов баз данных, использующих JDBC на других архитектурах. У нас есть список рассылки Android для вопросов ORMLite.
Ответ 3
Этот вопрос не может возрасти, но предлагаемые рамки могут. Итак, вот первый список того, что я считаю важным в таких рамках для сравнения:
- Есть ли артефакт Maven или Gradle? (что большой плюс в зависимости от того, используете ли вы maven или gradle, очевидно)
- Доступен ли код простым способом, включая быстрый обзор, посвященный суждению о деятельности? (код, размещенный на github, является для меня определенным плюсом).
- Управление версиями: есть ли в нем теги релизов/выпуска и артефакты? (некоторые из них размещены на github и требуют либо git clone, либо предлагают мастер-архив для загрузки - для меня большой минус, если даже теги релиза не установлены и не адресованы в README)
- В качестве размера я задал некоторые подсказки, где было легко добраться (я ничего не загружал, поэтому из тех проектов, которые не предлагают артефактов выпуска, нет размеров)
И вот список фреймворков с примечаниями по указанным выше пунктам. Я снова посмотрел на aBatis и Hadi, но добавил только те, у кого была активность после 2011 года.
- http://ormlite.com, артефакт Maven, 52 kB, SVN, сайт... сложно, но, похоже, есть много примеров, согласно http://ormlite.com/changelog.txt последняя версия - 4.48 с 2013 года, https://github.com/j256/ormlite-core (теги выпуска), последняя активность март 2015 г.
- http://greendao-orm.com, хорошее обслуживание, Артефакт Maven, фокус: быстрая производительность, небольшой размер, мало Потребление ОЗУ. Github: https://github.com/greenrobot/greenDAO/ (теги релиза, > 2300 звезд), последняя активность Ноябрь 2014
- https://github.com/roscopeco/ormdroid, малый размер, последняя активность Август 2014
- http://www.activeandroid.com, https://github.com/pardom/ActiveAndroid ( > 2300 звезд), хорошее обслуживание, сообщество, нет (точки загрузки в мастер-архив), артефакт Maven, последняя активность октября 2014 года.
- http://droidparts.org, https://github.com/yanchenko/droidparts (метки выпуска, > 600 звезд), а также инъекции зависимостей, Артефакт Maven, активно поддерживается
- http://www.androrm.com, https://github.com/androrm/androrm (последние теги), последнее действие 02 января 2014 года ( GitHub)
- https://github.com/emilsjolander/sprinkles (теги релиза, > 600 звезд), последняя активность мая 2014 года, артефакт Maven (спасибо @AndroidGecko)
- http://realm.io, https://github.com/realm/realm-java заменяет не только ORM, но и SQLite, также для iOS ( релиз, > 1600 звезд), активно поддерживается, собственный репозиторий Maven.
Я не пробовал никого из них, но, может быть, я могу избавить нынешних читателей от времени, представив текущие активные проекты. Пожалуйста, добавьте комментарий, если вы знаете о других проектах, которые удовлетворяют некоторым из вышеперечисленных пунктов и имеют некоторое серьезное развитие (в течение некоторого времени).
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, вы можете очень быстро перейти с этой библиотекой.
Ответ 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
Этот инструмент очень прост и прост в использовании.
Ответ 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. Надеюсь, в один прекрасный день было бы лучше.