Sobes.tech
Junior — Middle

Kas teil on praktilisi kogemusi Room teegiga töötamisel kohaliku andmebaasiga Androidis?

sobes.tech AI

Vastus AI-lt

Jah, Room raamatukogu on mugav ORM, mis võimaldab töötada kohaliku SQLite andmebaasiga Androidis. See lihtsustab andmete loomist, lugemist, uuendamist ja kustutamist ning tagab samal ajal tüübi turvalisuse ja integratsiooni LiveData ja Coroutines'iga.

Roomi kasutamise näide:

@Entity(tabeliNimi = "users")
data class User(
    @PrimaryKey val id: Int,
    val name: String,
    val age: Int
)

@Dao
interface UserDao {
    @Query("SELECT * FROM users")
    fun getAllUsers(): List<User>

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    fun insertUser(user: User)
}

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

// Andmebaasi initsialiseerimine
val db = Room.databaseBuilder(
    context.applicationContext,
    AppDatabase::class.java, "app-database"
).build()

// Kasutamine
val users = db.userDao().getAllUsers()

Room genereerib automaatselt koodi andmebaasi ligipääsuks, mis vähendab korduva koodi ja vigade arvu.