تحتوي مكتبة androidx.sqlite
على واجهات مجردة إلى جانب
من التطبيقات التي يمكن استخدامها لإنشاء مكتباتك التي يمكنها الوصول إلى
SQLite. ويمكنك استخدام مكتبة الغرفة التي توفر
طبقة تجريدية عبر SQLite للسماح بوصول أكثر قوة إلى قاعدة البيانات أثناء
والاستفادة من القوة الكاملة لـ SQLite.
إعداد التبعيات
الإصدار الحالي من androidx.sqlite
المتوافق مع Kotlin Multi-Platform
(KMP) هو 2.5.0-alpha01 أو أعلى.
لإعداد SQLite في مشروع KMP الخاص بك، أضف التبعيات للعناصر
في ملف build.gradle.kts
للوحدة:
androidx.sqlite:sqlite
- واجهات برنامج تشغيل SQLiteandroidx.sqlite:sqlite-bundled
- تنفيذ برنامج التشغيل المجمّع
واجهات برمجة تطبيقات SQLite Driver
تقدّم مجموعات مكتبة androidx.sqlite
واجهات برمجة تطبيقات منخفضة المستوى للتواصل مع
مكتبة SQLite إما مضمنة في المكتبة عند استخدام
androidx.sqlite:sqlite-bundled
أو في النظام الأساسي المضيف، مثل Android أو iOS
عند استخدام androidx.sqlite:sqlite-framework
. تتبع واجهات برمجة التطبيقات عن كثب الجوانب
بوظائف واجهة برمجة تطبيقات SQLite C.
هناك 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 Driver و Room
تُعد واجهات برمجة تطبيقات برنامج التشغيل مفيدة للتفاعلات منخفضة المستوى مع قاعدة بيانات SQLite. بالنسبة إلى مكتبة غنية بالميزات توفر وصولاً أكثر فعالية إلى SQLite ثم يُنصح بحجز غرفة.
يعتمد RoomDatabase
على SQLiteDriver
لتنفيذ عمليات قاعدة البيانات
كان من الضروري تهيئة تنفيذ باستخدام
RoomDatabase.Builder.setDriver()
توفير الغرفة
RoomDatabase.useReaderConnection
و
RoomDatabase.useWriterConnection
لمزيد من الوصول المباشر إلى الحسابات المُدارة
لاتصالات قاعدة البيانات.