הספרייה androidx.sqlite
כוללת ממשקים מופשטים וגם ממשקים בסיסיים
שבהם אפשר להשתמש כדי ליצור ספריות משלכם,
SQLite. מומלץ להשתמש בספרייה חדר, שמציעה
בשכבת הפשטה של SQLite כדי לאפשר גישה יעילה יותר למסדי נתונים
שמנצלים את מלוא העוצמה של SQLite.
הגדרת יחסי תלות
הגרסה הנוכחית של androidx.sqlite
שתומכת ב-Kotlin Multi-Platform
(KMP) היא 2.5.0-alpha01 ומעלה.
כדי להגדיר את SQLite בפרויקט KMP, צריך להוסיף את יחסי התלות של ארטיפקטים
בקובץ build.gradle.kts
של המודול:
androidx.sqlite:sqlite
– ממשקי ה-SQLite Driveandroidx.sqlite:sqlite-bundled
– ההטמעה של מנהל ההתקן בחבילה
ממשקי API למנהלי התקנים של SQLite
קבוצות הספריות androidx.sqlite
מציעות ממשקי API ברמה נמוכה לתקשורת עם
או ספריית SQLite שכלולה בספרייה כשמשתמשים
androidx.sqlite:sqlite-bundled
או בפלטפורמה המארחת, כמו Android או iOS
כשמשתמשים ב-androidx.sqlite:sqlite-framework
. ממשקי ה-API פועלים כמעט לפי הליבה
של SQLite C API.
יש 3 ממשקים עיקריים:
SQLiteDriver
– נקודת הכניסה לשימוש ב-SQLite, והיא אחראית לפתיחת חיבורים למסד נתונים.SQLiteConnection
– הוא הייצוג של האובייקטsqlite3
.SQLiteStatement
– הוא הייצוג של האובייקטsqlite3_stmt
.
בדוגמה הבאה מוצגים ממשקי ה-API העיקריים:
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()
}
בדומה לממשקי API של SQLite C, השימוש הנפוץ הוא:
- פתיחת חיבור למסד נתונים באמצעות
SQLiteDriver
יישום בפועל. - הכנת הצהרת SQL באמצעות
SQLiteConnection.prepare()
- כדי להפעיל
SQLiteStatement
:- אפשר לקשר בין ארגומנטים באמצעות הפונקציות
bind*()
. - מתבצע איטרציה מעל קבוצת התוצאות באמצעות הפונקציה
step()
. - קריאת עמודות מקבוצת התוצאות באמצעות הפונקציות
get*()
.
- אפשר לקשר בין ארגומנטים באמצעות הפונקציות
הטמעות של מנהלי התקנים
הטבלה הבאה מסכמת את ההטמעות הזמינות של מנהלי התקנים:
שם הכיתה |
פריט מידע שנוצר בתהליך פיתוח (Artifact) |
פלטפורמות נתמכות |
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
ממשקי ה-API של מנהלי ההתקנים שימושיים לאינטראקציות ברמה נמוכה עם מסד נתונים של SQLite. לספרייה עשירה בתכונות שמספקות גישה יעילה יותר ל-SQLite, מומלץ להזמין חדר.
RoomDatabase
מסתמך על SQLiteDriver
כדי לבצע פעולות במסד הנתונים
וצריך להגדיר הטמעה באמצעות
RoomDatabase.Builder.setDriver()
. החדר כולל
RoomDatabase.useReaderConnection
ו-
RoomDatabase.useWriterConnection
לגישה ישירה יותר
חיבורים למסד הנתונים.