SQLite — это легковесная реляционная база данных, встроенная в Android. Room — это библиотека абстракции над SQLite, предоставляющая более высокоуровневый API для работы с базой данных, упрощающая взаимодействие и уменьшающая вероятность ошибок.
Основные отличия:
Пример использования Room:
kotlin
Пример прямого использования SQLite с SQLiteOpenHelper:
kotlin
| Характеристика | Room | SQLite (напрямую) |
|---|---|---|
| Тип | ORM (библиотека абстракции) | Реляционная база данных |
| Работа с данными | Объекты (POJO) | Строки и столбцы |
| Проверки | Компиляционные | В основном runtime |
| Бойлерплейт-код | Автоматически генерируется | Требует ручного написания |
| Интеграция с AAC | Да (LiveData, Flow) | Нет |
| Миграции | Удобный API | Требует ручной реализации |
| Простота использования | Высокая | Ниже, более склонно к ошибкам |
Использование Room предпочтительно в большинстве случаев для новой разработки, так как он значительно упрощает работу с базой данных, повышает надежность кода и снижает количество ошибок. Прямое использование SQLite может быть оправдано в очень простых случаях или при специфических требованиях, которые Room не может удовлетворить.