البرمجة بالكوتلن

كيفية استخدام مكتبة Room للتفاعل مع قاعدة البيانات في الكوتلن Kotlin؟

يمكن استخدام مكتبة Room للتفاعل مع قاعدة البيانات في الكوتلن Kotlin عن طريق اتباع الخطوات التالية:

1. إضافة تعليمات بناء المكتبة إلى ملف build.gradle الخاص بالمشروع:

“`gradle
dependencies {
def room_version = “2.3.0”

implementation “androidx.room:room-runtime:$room_version”
annotationProcessor “androidx.room:room-compiler:$room_version”

// optional – Kotlin Extensions and Coroutines support for Room
implementation “androidx.room:room-ktx:$room_version”

// optional – RxJava support for Room
implementation “androidx.room:room-rxjava2:$room_version”

// optional – Guava support for Room, including Optional and ListenableFuture
implementation “androidx.room:room-guava:$room_version”

// optional – Test helpers
testImplementation “androidx.room:room-testing:$room_version”
}
“`

2. تعريف مكونات قاعدة البيانات ضمن واجهة DAO:

“`kotlin
@Dao
interface UserDao {
@Query(“SELECT * FROM user”)
fun getAll(): List

@Query(“SELECT * FROM user WHERE uid IN (:userIds)”)
fun loadAllByIds(userIds: IntArray): List

@Query(“SELECT * FROM user WHERE first_name LIKE :first AND ” +
“last_name LIKE :last LIMIT 1”)
fun findByName(first: String, last: String): User

@Insert
fun insertAll(vararg users: User)

@Delete
fun delete(user: User)
}
“`

3. إنشاء قاعدة البيانات:

“`kotlin
@Database(entities = arrayOf(User::class), version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
“`

4. بناء قاعدة البيانات:

“`kotlin
val db = Room.databaseBuilder(
applicationContext,
AppDatabase::class.java, “database-name”
).build()
“`

5. تنفيذ عمليات CRUDE على قاعدة البيانات:

“`kotlin
val userDao = db.userDao()
val users = userDao.getAll()
“`