Основные компоненты Room:
•
Database – это точка доступа к базе данных. Класс, аннотированный
@Database должен удовлетворять следующим критериям:
1. Быть абстрактным и наследоваться от
RoomDatabase;
2. Иметь абстрактные методы без аргументов, которые возвращают DAO-объекты;
3. Аннотация должна включать список Entity-классов, которые принадлежат этой базе данных:
@Database(entities = arrayOf(Student::class, School::class)).
•
DAO (Data Access Object) – класс, который имеет методы для доступа к базе данных.
•
Entity – класс, отражающий таблицу в базе данных.
Инстанс Database-компонента создается билдером, который можно получить с помощью метода
Room.databaseBuilder() или
Room.inMemoryDatabaseBuilder().
Database-класс дает доступ к объектам DAO, ассоциированным с базой данных.
DAO-объекты используются для получения и сохранения объектов Entity. А Entity – для получения значений, которые хранятся в таблицах базы данных.