Junior
45
questionbank

Какие основные компоненты библиотеки Room для работы с базами данных в Android?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Основные компоненты библиотеки Room:

  • @Entity: Определяет класс как таблицу в базе данных. Аннотируется над классом данных (POJO) и указывается имя таблицы, если оно отличается от имени класса. Можно определить первичный ключ и индексы.

  • @Dao: Определяет интерфейс или абстрактный класс для доступа к данным (Data Access Object). Содержит методы для выполнения операций с базой данных (вставка, обновление, удаление, запросы).

  • @Database: Определяет абстрактный класс, который расширяет RoomDatabase. В этой аннотации указываются сущности (таблицы), DAO и версия базы данных. Предоставляет синглтон экземпляр базы данных.

  • Data Access Objects (DAO): Интерфейсы или абстрактные классы, помеченные аннотацией @Dao. Содержат методы с аннотациями @Insert, @Delete, @Update, @Query для взаимодействия с данными.

  • RoomDatabase: Абстрактный класс, который генерируется Room на основе класса с аннотацией @Database. Предоставляет точку входа для получения экземпляров DAO.

  • SQL Queries: Room использует SQL для запросов к базе данных, которые определяются в @Query аннотациях методов DAO.

Пример структуры:

kotlin

Взаимодействие между компонентами: AppDatabase (реализация RoomDatabase) предоставляет доступ к экземпляру UserDao. Методы UserDao выполняют SQL-запросы к таблице users (представленной классом User).