Я ищу очень простую структуру ORM, работающую на Android для SQLite. Я тестировал ActiveAndroid, но ни один из примеров не мог построить Eclipse.
Кстати, как ребята внедряют отношения «многие ко многим» в SQLite для Android? Как вы отражаете каскад относительно удаления строк и гарантируете целостность базы данных?ORM на Android SQLite и схема базы данных
ответ
Пробег: SQLiteGen. Это не так многофункционально, как спящий режим, но вы можете сгенерировать в Eclipse несколько простых классов ORM.
Надеюсь, что это поможет!
Я являюсь основным автором ORMLite, у которого есть бэкэнд Android, который вызывает звонки в собственные API баз данных ОС Android, чтобы поддерживать его функциональность ORM. У нас есть большое количество разработчиков Android, которые успешно используют фреймворк. Смотрите здесь для получения дополнительной информации:
С точки зрения многих-ко-многим, ORMLite не поддерживает каскадирование или любой из более продвинутых функций ORM, но есть примеры легкого МНОГИХ ко-многим реализациях:
Легко настроить, но узнать все имена для вещей, которые не то, что они кажутся очень раздражающими. Он просто не соответствует какой-либо общей терминологии базы данных. Может быть, мне кажется, что это так, потому что я едва ли имею опыт работы с SQLite. Провел три полных дня, просто прочитав документацию о том, как эта головоломка собрана вместе, не могла заставить ее нормально функционировать в конце. Не подходит для SQLite в сочетании с новичками java, на мой взгляд. –
Можете ли вы уточнить проблемы @G_V? Что я могу сделать, чтобы улучшить документацию? Я потратил много времени на это. – Gray
Я могу сказать, и это, скорее всего, из-за моей неопытности с исходными SQLite-андроидными библиотеками, но вы распространили неидеальное именование встроенных библиотек SQLite с помощью таких имен, как OrmLiteSqliteOpenHelper. Такие слова, как «Менеджер» и «Помощник», на самом деле не показывают мне, как начинающему, что происходит. Я на короткое время на этой неделе, но я скоро займусь тем, чтобы действительно документировать, где у меня были проблемы, потому что я думаю, что ваша инфраструктура отличная, но опять же, как кто-то довольно новый для SQLite + Android, я чувствовал, что есть некоторые недостающие шаги в том, как заставить его работать. –
Я написал lightw восемь ORM и назвал его Androrm. Поскольку я люблю Django, синтаксис запроса выглядит очень похожим. Пожалуйста, попробуйте и дайте мне обратную связь :)
WEB-страница: http://androrm.com/
Также на GitHub: https://github.com/androrm/androrm
В настоящее время невозможно скачать бинарные релизы. Вы знаете об этом? – wojciii
Ниже, как я делаю это с Sorma - An Android Content Provider решение.
Карта вашего Java POJO для таблицы базы данных:
@Table( name="contact", keyColumn="id", autoId=true, create="create table if not exists contact (" + " id INTEGER primary key autoincrement" + ", firstName text" + ", lastName text" + ", married tinyint" + ")" ) public class Contact { private Integer id; private String firstName; private String lastName; private boolean married; ......
Создание контента класса поставщика:
import com.gaoshin.sorma.annotation.ContentProvider; import com.gaoshin.sorma.annotation.SormaContentProvider; @ContentProvider( version = 1, mappingClasses = { Contact.class, Phone.class } ) public class AddressBookContentProvider extends SormaContentProvider { }
Определить поставщика контента в AndroidManifest.xml:
<provider android:authorities="com.gaoshin.sorma.examples.addressbook.AddressBookContentProvider" android:name="com.gaoshin.sorma.examples.addressbook.AddressBookContentProvider" />
Используйте контент-провайдера:
sorma = SORMA.getInstance(getBaseContext(), AddressBookContentProvider.class); // insert contact Contact contact = new Contact(); contact.setFirstName("fname1"); contact.setLastName("lname1"); sorma.insert(contact);
Готово!
(Вы можете найти более подробную информацию here.)
Ссылка на учебник SORMA больше недоступна. – JJD
Для тех, кто все еще ищет решение ORM, я выпустил greenDAO несколько месяцев назад. Несколько приложений в Android Market уже используют его. В отличие от других инструментов ORM для Android, одной из целей первичного проектирования greenDAOs была производительность. Для многих операций он должен быть в несколько раз быстрее, чем другие решения, например.он в 4-5 раз быстрее по сравнению с ORMLite для загрузки объектов.
Он поддерживает отношения. Документация описывает how to use relations and how you could model many-to-many relations.
Удалить-каскад является опасной вещью и, следовательно, не поддерживается greenDAO. Более безопасный способ - удалить сущности снизу вверх внутри транзакции.
Я пробовал greendao, концепция замечательная, что вы создаете сущности и dao, но способ, которым вы составляете генератор, не так уж умен. – Andy
О чем вы говорите? –
@greenrobot любые советы о том, как выполнить удаление снизу вверх в случае иерархии (отношения к одному и тому же объекту)? –
Я использую, и являюсь автором, Mechanoid DB, который предоставляет sqlite, например dsl, для создания сторонних контент-провайдеров sqlite.
Проверьте это:
Хорошая работа !! использовал его вполне доволен! –
Спасибо за ваши комментарии! :) –
Концепция выглядит великолепно, идеи, стоящие за ней, хороши, определенно собираются попробовать. –
- 1. Базы данных Android SQLite
- 2. Схема геолокации и базы данных
- 3. Схема базы данных Firebase
- 4. Android SQLite базы данных и разрешений журналов
- 5. Схема базы данных учета
- 6. Обработка большой базы данных sqlite на Android
- 7. Android: проектирование базы данных MySQL и SQLite
- 8. Базы данных для SQLite на android
- 9. Sqlite обработчик базы данных android
- 10. базы данных Android SQLite повреждается
- 11. Android: открытие и закрытие базы данных SQLite
- 12. Основы базы данных Android SQlite
- 13. Открытие базы данных Android SQLite
- 14. Экспорт базы данных SQLite Android
- 15. Схема таблицы базы данных и совокупные корни
- 16. Обновление базы данных Android SQLite
- 17. Query «бессвязный» Android SQLite базы данных
- 18. Запрос базы данных android sqlite
- 19. SQLite-схема, размер базы данных, скорость доступа, сомнения по обновлению
- 20. Обновление базы данных SQLite android
- 21. Заполнение базы данных Android SQLite
- 22. Android: ошибки базы данных Sqlite
- 23. Версия базы данных SQLite Android
- 24. C# Android SQLite базы данных
- 25. Схема базы данных SSMS
- 26. Расширяемая схема базы данных
- 27. Схема базы данных Mongoid
- 28. Схема базы данных опросов
- 29. Хорошая схема базы данных
- 30. Правильная схема базы данных
Пожалуйста, ознакомьтесь с ** [JDXA] (http://softwaretree.com/2015/products/jdxa/jdxa.html) **, простой, не -инструсивный и гибкий ORM для Android. JDXA поддерживает отношения наследования, взаимно-однозначные отношения, один-ко-многим и многие-ко-многим. Для отношений «многие ко многим» удаления строк каскадируются до промежуточной таблицы соединений в транзакции, сохраняя целостность другой стороны отношения. См. Различные [Фрагменты кода] (http://softwaretree.com/2015/products/jdxa/code-snippets.html). –