SQLite — это легковесная реляционная база данных, встроенная в Android. Room — это библиотека абстракции над SQLite, предоставляющая более высокоуровневый API для работы с базой данных, упрощающая взаимодействие и уменьшающая вероятность ошибок.
Основные отличия:
- ORM: Room является ORM (Object-Relational Mapper), позволяя работать с данными в виде POJO-классов, а не напрямую с таблицами и столбцами.
- Компиляционные проверки: Room выполняет проверки запросов к базе данных во время компиляции, обнаруживая синтаксические ошибки и несоответствия типов данных до запуска приложения.
- Упрощение кода: Room генерирует бойлерплейт-код для работы с базой данных (например, для преобразования POJO в строки таблицы и обратно), что значительно уменьшает количество ручного кода.
- Поддержка LiveData и Flow: Room интегрируется с компонентами Android Architecture Components, такими как LiveData и Flow, упрощая работу с асинхронными операциями и наблюдение за изменениями данных.
- Миграции: Room предоставляет удобный механизм для выполнения миграций базы данных при изменении ее схемы.
Пример использования Room:
kotlin
Пример прямого использования SQLite с SQLiteOpenHelper
:
kotlin
SQLite — это легковесная реляционная база данных, встроенная в Android. Room — это библиотека абстракции над SQLite, предоставляющая более высокоуровневый API для работы с базой данных, упрощающая взаимодействие и уменьшающая вероятность ошибок.
Основные отличия:
- ORM: Room является ORM (Object-Relational Mapper), позволяя работать с данными в виде POJO-классов, а не напрямую с таблицами и столбцами.
- Компиляционные проверки: Room выполняет проверки запросов к базе данных во время компиляции, обнаруживая синтаксические ошибки и несоответствия типов данных до запуска приложения.
- Упрощение кода: Room генерирует бойлерплейт-код для работы с базой данных (например, для преобразования POJO в строки таблицы и обратно), что значительно уменьшает количество ручного кода.
- Поддержка LiveData и Flow: Room интегрируется с компонентами Android Architecture Components, такими как LiveData и Flow, упрощая работу с асинхронными операциями и наблюдение за изменениями данных.
- Миграции: Room предоставляет удобный механизм для выполнения миграций базы данных при изменении ее схемы.
Пример использования Room:
kotlin
Пример прямого использования SQLite с SQLiteOpenHelper
:
kotlin