تحتوي مكتبة androidx.sqlite
على واجهات مجردة إلى جانب تطبيقات أساسية يمكن استخدامها لإنشاء مكتباتك الخاصة التي يمكنها الوصول إلى SQLite. يمكنك استخدام مكتبة Room، التي توفّر طبقة تجريد عبر SQLite للسماح بالوصول إلى قاعدة بيانات أكثر فعالية مع الاستفادة من القوة الكاملة لـ SQLite.
إعداد التبعيات
إنّ الإصدار الحالي من androidx.sqlite
المتوافق مع Kotlin Multi-Platform (KMP) هو الإصدار 2.5.0-alpha01 أو إصدار أحدث.
لإعداد SQLite في مشروع KMP، أضف التبعيات للعناصر في ملف build.gradle.kts
للوحدة النمطية:
androidx.sqlite:sqlite
- واجهات SQLite Driverandroidx.sqlite:sqlite-bundled
- تنفيذ برنامج التشغيل المجمَّع
واجهات برمجة تطبيقات SQLite Driver
توفّر مجموعات المكتبة androidx.sqlite
واجهات برمجة تطبيقات منخفضة المستوى للتواصل مع مكتبة SQLite، سواء كانت مضمَّنة في المكتبة عند استخدام androidx.sqlite:sqlite-bundled
أو في النظام الأساسي المضيف، مثل Android أو iOS، عند استخدام androidx.sqlite:sqlite-framework
. تتبع واجهات برمجة التطبيقات عن كثب الوظائف
الأساسية لـ SQLite C API.
هناك 3 واجهات رئيسية:
SQLiteDriver
- هي نقطة الدخول لاستخدام SQLite، وهي مسؤولة عن فتح اتصالات قاعدة البيانات.SQLiteConnection
- يمثل الكائنsqlite3
SQLiteStatement
- يمثل الكائنsqlite3_stmt
يعرض المثال التالي واجهات برمجة التطبيقات الأساسية:
fun main() {
val databaseConnection = BundledSQLiteDriver().open("todos.db")
databaseConnection.execSQL(
"CREATE TABLE IF NOT EXISTS Todo (id INTEGER PRIMARY KEY, content TEXT)"
)
databaseConnection.prepare(
"INSERT OR IGNORE INTO Todo (id, content) VALUES (? ,?)"
).use { stmt ->
stmt.bindInt(index = 1, value = 1)
stmt.bindText(index = 2, value = "Try Room in the KMP project.")
stmt.step()
}
databaseConnection.prepare("SELECT content FROM Todo").use { stmt ->
while (stmt.step()) {
println("Action item: ${stmt.getText(0)}")
}
}
databaseConnection.close()
}
على غرار واجهات برمجة تطبيقات SQLite C، يكون الاستخدام الشائع:
- افتح اتصال قاعدة بيانات باستخدام تنفيذ
SQLiteDriver
الذي تم إنشاء مثيل له. - إعداد عبارة SQL باستخدام
SQLiteConnection.prepare()
- تنفيذ
SQLiteStatement
من خلال:- يمكنك ربط الوسيطات باستخدام الدوال
bind*()
. - التكرار على مجموعة النتائج باستخدام الدالة
step()
. - قراءة الأعمدة من مجموعة النتائج باستخدام الدوال
get*()
.
- يمكنك ربط الوسيطات باستخدام الدوال
عمليات تنفيذ برامج التشغيل
يلخص الجدول التالي عمليات تنفيذ برامج التشغيل المتاحة:
اسم الصف |
العناصر |
الأنظمة الأساسية المتوافقة |
AndroidSQLiteDriver |
androidx.sqlite:sqlite-framework |
Android |
NativeSQLiteDriver |
androidx.sqlite:sqlite-framework |
iOS وMac وLinux |
BundledSQLiteDriver |
androidx.sqlite:sqlite-bundled |
أجهزة Android وiOS وMac وLinux وJVM (كمبيوتر مكتبي) |
وتتوفّر آلية التنفيذ المقترَحة BundledSQLiteDriver
في androidx.sqlite:sqlite-bundled
. وهو يتضمن مكتبة SQLite تم تجميعها من المصدر، مما يوفر أحدث إصدار والاتساق عبر جميع أنظمة KMP المتوافقة.
برنامج تشغيل وغرفة SQLite
تعد واجهات برمجة تطبيقات برنامج التشغيل مفيدة للتفاعلات منخفضة المستوى مع قاعدة بيانات SQLite. بالنسبة إلى مكتبة الميزات الغنية التي توفر إمكانية وصول أكثر فعالية إلى SQLite، يُنصح باستخدام Room.
تعتمد السمة RoomDatabase
على SQLiteDriver
لتنفيذ عمليات قاعدة البيانات، ويجب ضبط عملية التنفيذ باستخدام RoomDatabase.Builder.setDriver()
. توفر الغرفة RoomDatabase.useReaderConnection
وRoomDatabase.useWriterConnection
للوصول المباشر إلى اتصالات قاعدة البيانات المُدارة.