Notice: file_put_contents(): Write of 20508 bytes failed with errno=28 No space left on device in /var/www/tgoop/post.php on line 50
Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck@mobileproglib P.5760
MOBILEPROGLIB Telegram 5760
🌐 How to: работать с Room Database в Android

Как это работает

Room — это ORM-библиотека для Android, которая упрощает работу с SQLite. Она автоматически генерирует boilerplate-код для операций с БД, проверяет SQL-запросы на этапе компиляции и предоставляет удобные абстракции:

- @Entity — определяет таблицу в БД.

- @Dao (Data Access Object) — содержит методы для запросов (вставка, обновление, выборка).

- @Database — главный класс, который связывает сущности и DAO.

Если названия полей в классе и таблице не совпадают, используйте @ColumnInfo:
@Entity(tableName = "users")
data class User( @PrimaryKey val id: Int,
@ColumnInfo(name = "user_name") val name: String
)

Как начать

1.Добавьте зависимости в build.gradle (Module):
implementation "androidx.room:room-runtime:2.6.0"
kapt "androidx.room:room-compiler:2.6.0" // для Kotlin


2.Создайте Entity, Dao и Database:
@Dao
interface UserDao { @Query("SELECT * FROM users")
fun getAll(): List<User>

@Insert
fun insert(user: User)
}

@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}

3.Инициализируйте БД в приложении:
val db = Room.databaseBuilder(
context, AppDatabase::class.java, "my-database"
).build()



Лучшие практики

➡️ Миграции БД: Если меняете структуру таблиц, увеличивайте version и добавляйте миграцию:
val migration = object : Migration(1, 2) {
override fun migrate(database: SupportSQLiteDatabase) { database.execSQL("ALTER TABLE users ADD COLUMN age INTEGER")
}
}

➡️ Асинхронные запросы: Room поддерживает Kotlin Coroutines и RxJava. Пример с Flow:
@Query("SELECT * FROM users")
fun getAllFlow(): Flow<List<User>>


Где применять

🔵 Кеширование данных из API.

🔵 Оффлайн-режим в приложениях.

🔵 Сложные запросы с JOIN и вложенными объектами.

Используете Room? Делитесь лайфхаками в комментах!

Библиотека мобильного разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
5🥰2🥱2🔥1



tgoop.com/mobileproglib/5760
Create:
Last Update:

🌐 How to: работать с Room Database в Android

Как это работает

Room — это ORM-библиотека для Android, которая упрощает работу с SQLite. Она автоматически генерирует boilerplate-код для операций с БД, проверяет SQL-запросы на этапе компиляции и предоставляет удобные абстракции:

- @Entity — определяет таблицу в БД.

- @Dao (Data Access Object) — содержит методы для запросов (вставка, обновление, выборка).

- @Database — главный класс, который связывает сущности и DAO.

Если названия полей в классе и таблице не совпадают, используйте @ColumnInfo:

@Entity(tableName = "users")
data class User( @PrimaryKey val id: Int,
@ColumnInfo(name = "user_name") val name: String
)

Как начать

1.Добавьте зависимости в build.gradle (Module):
implementation "androidx.room:room-runtime:2.6.0"
kapt "androidx.room:room-compiler:2.6.0" // для Kotlin


2.Создайте Entity, Dao и Database:
@Dao
interface UserDao { @Query("SELECT * FROM users")
fun getAll(): List<User>

@Insert
fun insert(user: User)
}

@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}

3.Инициализируйте БД в приложении:
val db = Room.databaseBuilder(
context, AppDatabase::class.java, "my-database"
).build()



Лучшие практики

➡️ Миграции БД: Если меняете структуру таблиц, увеличивайте version и добавляйте миграцию:
val migration = object : Migration(1, 2) {
override fun migrate(database: SupportSQLiteDatabase) { database.execSQL("ALTER TABLE users ADD COLUMN age INTEGER")
}
}

➡️ Асинхронные запросы: Room поддерживает Kotlin Coroutines и RxJava. Пример с Flow:
@Query("SELECT * FROM users")
fun getAllFlow(): Flow<List<User>>


Где применять

🔵 Кеширование данных из API.

🔵 Оффлайн-режим в приложениях.

🔵 Сложные запросы с JOIN и вложенными объектами.

Используете Room? Делитесь лайфхаками в комментах!

Библиотека мобильного разработчика #буст

BY Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck


Share with your friend now:
tgoop.com/mobileproglib/5760

View MORE
Open in Telegram


Telegram News

Date: |

Some Telegram Channels content management tips The court said the defendant had also incited people to commit public nuisance, with messages calling on them to take part in rallies and demonstrations including at Hong Kong International Airport, to block roads and to paralyse the public transportation system. Various forms of protest promoted on the messaging platform included general strikes, lunchtime protests and silent sit-ins. When choosing the right name for your Telegram channel, use the language of your target audience. The name must sum up the essence of your channel in 1-3 words. If you’re planning to expand your Telegram audience, it makes sense to incorporate keywords into your name. Matt Hussey, editorial director of NEAR Protocol (and former editor-in-chief of Decrypt) responded to the news of the Telegram group with “#meIRL.” Find your optimal posting schedule and stick to it. The peak posting times include 8 am, 6 pm, and 8 pm on social media. Try to publish serious stuff in the morning and leave less demanding content later in the day.
from us


Telegram Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck
FROM American