7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. Android SDK

Запускаем Realm на Android

Scroll to top
Read Time: 3 mins

Russian (Pусский) translation by Anna k.Ivanova (you can also view the original English article)

Введение

Если вы не отставали от последних тенденций в разработке под Android, вы, вероятно, слышали о Realm. Realm - легкая база данных, которая может заменить библиотеки SQLite и ORM в ваших проектах на Android.

По сравнению с SQLite, Realm работает быстрее и имеет множество современных функций, таких как поддержка JSON, текучий API, уведомления об изменениях данных и поддержку шифрования, что облегчает жизнь разработчикам Android.

В этом кратком уроке вы узнаете об основах Realm для Android. В этом уроке я буду использовать Realm v0.84.1.

1. Добавление Realm в проект

Чтобы использовать Realm в проекте Android, вам нужно добавить его как compile зависимость в файле build.gradle модуля app.

2. Создание Realm

Realm похож на базу данных SQLite. У него есть файл, связанный с ним, который после создания будет сохраняться в файловой системе Android.

Чтобы создать новый Realm, вы можете вызвать статический метод Realm.getInstance из любого Activity.

Обратите внимание, что вызов Realm.getInstance, без передачи ему RealmConfiguration, приводит к созданию файла Realm с именем default.realm.

Если вы хотите добавить другой Realm в свое приложение, вы должны использовать объект RealmConfiguration.Builder и предоставить Realm-файлу уникальное имя.

3. Создание объекта RealmObject

Любой JavaBean может быть сохранен в Realm, если он расширяет класс RealmObject. Если вам интересно, что такое JavaBean, это просто класс Java, который является сериализуемым, имеет конструктор по умолчанию и имеет методы getter/setter для его свойств. Например, экземпляры следующего класса могут быть легко сохранены в Realm:

Если вы хотите использовать переменную-свойство RealmObject в качестве первичного ключа, вы можете использовать аннотацию @PrimaryKey. Например, вот как вы добавили первичный ключ, называемый code, в класс Country:

4. Создание транзакций

Хотя чтение данных из Realm очень простое, как вы увидите на следующем шаге, запись данных в него происходит немного сложнее. Realm соответствует ACID и обеспечивает атомарность и согласованность, Realm заставляет вас выполнять все операции записи внутри транзакции.

Чтобы начать новую транзакцию, используйте метод beginTransaction. Аналогичным образом, чтобы завершить транзакцию, используйте метод commitTransaction.

Вот как можно создать и сохранить экземпляр класса Country:

Возможно, вы заметили, что country1 не была создана с использованием конструктора класса Country. Чтобы Realm управлял экземпляром объекта RealmObject, экземпляр должен быть создан с использованием метода createObject.

Если вы должны использовать конструктор, не забудьте использовать метод copyToRealm для соответствующего объекта Realm, прежде чем совершить транзакцию. Вот пример:

5. Написание запросов

Realm предлагает очень интуитивный и свободный API для создания запросов. Чтобы создать запрос, используйте метод where соответствующего объекта Realm и передайте класс интересующих вас объектов. После создания запроса вы можете получить все результаты с помощью метода findAll, который возвращает объект RealmResults. В следующем примере мы извлекаем и печатаем все объекты типа Country:

Realm предлагает несколько точно названных методов, таких как beginWith, endsWith, lesserThan и moreThan, вы можете использовать для фильтрации результатов. В следующем коде показано, как вы можете использовать метод largeThan для извлечения только тех объектов Country, population которых превышает 100 миллионов:

Если вы хотите, чтобы результаты запроса были отсортированы, вы можете использовать метод findAllSorted. В качестве аргументов требуется String, определяющая имя поля для сортировки и boolean указание порядка сортировки.

Заключение

В этом кратком уроке вы узнали, как использовать Realm в проекте Android. Вы увидели, как легко создавать базу данных Realm, хранить в ней данные и запрашивать их. Чтобы узнать больше о Realm для Android, вы можете ознакомиться с его документацией.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.