Ответ
Да, работал. SQLite — встроенная база данных в Android. Используется для хранения локальных данных. Основные компоненты: SQLiteOpenHelper для создания/обновления БД, SQLiteDatabase для операций с данными.
Пример создания БД:
class DbHelper(context: Context) : SQLiteOpenHelper(context, "app.db", null, 1) {
override fun onCreate(db: SQLiteDatabase) {
db.execSQL("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)")
}
override fun onUpgrade(db: SQLiteDatabase, oldV: Int, newV: Int) {
db.execSQL("DROP TABLE IF EXISTS users")
onCreate(db)
}
}
Для запросов лучше использовать Room — абстракция над SQLite с проверкой на этапе компиляции.
Ответ 18+ 🔞
А, ну это ж классика, ёпта! SQLite в Android — это как встроенный шкафчик в твоей квартире, куда всё своё барахло складываешь. Работал, конечно, кто ж с ним не работал-то.
Смотри, суть простая: база данных прямо в телефоне живёт. Основные киты, на которых всё держится — это SQLiteOpenHelper, который базу создаёт или обновляет, если версию поменяли, и SQLiteDatabase, через который уже все операции — добавить, удалить, спросить что-то — делаешь.
Вот смотри, как это обычно выглядит, прям классический пример:
class DbHelper(context: Context) : SQLiteOpenHelper(context, "app.db", null, 1) {
override fun onCreate(db: SQLiteDatabase) {
db.execSQL("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)")
}
override fun onUpgrade(db: SQLiteDatabase, oldV: Int, newV: Int) {
db.execSQL("DROP TABLE IF EXISTS users")
onCreate(db)
}
}
В onCreate пишешь, какие таблицы создать, когда база впервые рождается. А onUpgrade — это когда новая версия приложения приехала, и схему данных надо поменять. Тут часто просто нахуй всё сносят и заново создают, как в примере, но в реальности, конечно, миграции по-умному пишут, чтобы пользователи не охуели, потеряв все данные.
Но слушай, если честно, в 2024-м руками с SQLiteDatabase возиться — это как на Запорожце через всю страну ехать. Едет, но овердохуища мороки. Один неверный запрос — и приложение крешится, да и проверок никаких на этапе компиляции.
Поэтому все адекватные люди уже давно используют Room. Это такая обёрточка сверху, библиотека от гугла. Она, блядь, красота: ты описываешь сущности (Entity), запросы (Dao) и саму базу (Database) аннотациями, а она тебе на этапе компиляции говорит: «Чувак, ты тут хуйню написал, таблицы users не существует». То есть ошибку в SQL-запросе ты узнаешь сразу, когда проект собираешь, а не когда пользователь уже в приложении на кнопку нажал. Волнение ебать, терпения ноль — вот что экономит.
Короче, SQLite — это фундамент, он везде и всегда. Но если не хочешь себе геморрой с ручным управлением, бери Room и живи спокойно. Чистая магия, а не библиотека.