База данных SQLite — это один из способов хранения данных приложения локально в Android. В этом уроке мы покажем вам более легкий способ работы с БД, используя Sugar ORM.
До безумия простой способ для работы с БД в Android. – Sugar ORM
Как правило, при использовании SQLite в Android требуется создание большого количества шаблонного кода, которое занимает много времени. Но с Sugar ORM, все, что вам нужно, это создать класс модели.
Настройка Sugar ORM
1. Добавьте в ваш build.gradle :зависимость
compile 'com.github.satyan:sugar:1.4'
2. Замените ваш AndroidManifest.xml на следующий:
<application android:label="@string/app_name" android:icon="@drawable/icon" android:name="com.orm.SugarApp"> . . <meta-data android:name="DATABASE" android:value="sugar_example.db" /> <meta-data android:name="VERSION" android:value="2" /> <meta-data android:name="QUERY_LOG" android:value="true" /> <meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.example" /> . . </application>
Теги meta-data являются необязательными и служат следующей цели:
Metadata | Description |
---|---|
DATABASE |
Имя создаваемого файла базы данных SQLite, например: app_name.db |
VERSION |
Версия схемы вашей БД |
QUERY_LOG |
Включить логирование сгенерированных запросов |
DOMAIN_PACKAGE_NAME |
Пакет, где хранятся наши модели. Позволяет ускорить создание таблиц |
Создание моделей
Ваша модель должна наследоваться от SugarRecord. Sugar ORM использует информацию этого класса для автоматического создания таблиц.
public class Book extends SugarRecord { String title; String edition; //Обязательно сохраните конструктор по умолчанию! public Book(){ } public Book(String title, String edition){ this.title = title; this.edition = edition; } }
Теперь давайте посмотрим как легко мы можем выполнять основные операции с базой данных.
Делаем CRUD-операции легкими вместе с Sugar ORM
Создание
Book book = new Book("Title here", "2nd edition") book.save();
Обновление
Book book = Book.findById(Book.class, 1); book.title = "updated title here"; // modify the values book.edition = "3rd edition"; book.save();
Удаление
Book book = Book.findById(Book.class, 1); book.delete();
Получение/удаление всех записей
List<Book> books = Book.listAll(Book.class); Book.deleteAll(Book.class);
Как видите, мы можем выполнять операции вставки/редактирования/удаления в одну строчку. Это потрясающе!
Запросы
Что это за SQL, если вы не можете использовать запросы? Sugar ORM умеет и это!
Есть 2 способа сделать запрос. Давайте рассмотрим пример, чтобы сравнить их.
Raw запросы
List<Book> books = Book.findWithQuery(Book.class, "Select * from Book where title = ?", "My book");
Query Builder
Select.from(Book.class) .where(Condition.prop("title").eq("My book"), Condition.prop("edition").eq("3rd edition")) .list();
Заключение
Как видите, Sugar ORM для Android может избавить вас от большого количества шаблонного кода, необходимого для начала работы с SQLite в ваших приложениях. В этом небольшом уроке мы увидели, как легко мы можем создавать таблицы и выполнять стандартные CRUD-операции при помощи Sugar ORM. На этом все. Более полную информацию вы можете найти на официальном сайте библиотеки.
Смотрите также:
Доброго времени суток, а как эта ормка на счёт много табличных баз со связями ?
Спасибо.