Sqlite
androidx.sqlite
מכילה ממשקים מופשטים והטמעות בסיסיות שאפשר להשתמש בהן כדי לבנות ספריות משלכם שניגשים ל-SQLite.
מומלץ להשתמש בספרייה Room, שמספקת שכבת הפשטה מעל SQLite כדי לאפשר גישה חזקה יותר למסד הנתונים, תוך ניצול מלוא העוצמה של SQLite.
העדכון האחרון | גרסה יציבה | מועמד לגרסה | גרסת בטא | גרסה אלפא |
---|---|---|---|---|
30 באוקטובר 2024 | 2.4.0 | - | - | 2.5.0-alpha11 |
הצהרת יחסי תלות
כדי להוסיף תלות ב-SQLite, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאגר Maven של Google.
מוסיפים את יחסי התלות של הארטיפקטים הנדרשים בקובץ build.gradle
של האפליקציה או המודול:
Groovy
dependencies { def sqlite_version = "2.4.0" // Java language implementation implementation "androidx.sqlite:sqlite:$sqlite_version" // Kotlin implementation "androidx.sqlite:sqlite-ktx:$sqlite_version" // Implementation of the AndroidX SQLite interfaces via the Android framework APIs. implementation "androidx.sqlite:sqlite-framework:$sqlite_version" }
Kotlin
dependencies { val sqlite_version = "2.4.0" // Java language implementation implementation("androidx.sqlite:sqlite:$sqlite_version") // Kotlin implementation("androidx.sqlite:sqlite-ktx:$sqlite_version") // Implementation of the AndroidX SQLite interfaces via the Android framework APIs. implementation("androidx.sqlite:sqlite-framework:$sqlite_version") }
מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ל-build.
משוב
המשוב שלך עוזר לנו לשפר את Jetpack. אם נתקלתם בבעיות חדשות או שיש לכם רעיונות לשיפור הספרייה הזו, נשמח לשמוע מכם. לפני שיוצרים בעיה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להצביע על בעיה קיימת, לוחצים על לחצן הכוכב.
מידע נוסף זמין במסמכי התיעוד של Issue Tracker.
גרסה 2.5
גרסה 2.5.0-alpha11
30 באוקטובר 2024
androidx.sqlite:sqlite-*:2.5.0-alpha11
משוחרר. גרסת 2.5.0-alpha11 מכילה את ההוספות האלה.
גרסה 2.5.0-alpha10
16 באוקטובר 2024
androidx.sqlite:sqlite-*:2.5.0-alpha10
משוחרר. גרסת 2.5.0-alpha10 מכילה את ההוספות האלה.
שינויים ב-API
- מוסיפים את
SQLiteStatement.getColumnType()
יחד עם קבועי התוצאות השונים שלSQLITE_DATA_*
כדי לאפשר אחזור של סוג הנתונים של עמודה. (I1985c, b/369636251)
גרסה 2.5.0-alpha09
2 באוקטובר 2024
androidx.sqlite:sqlite-*:2.5.0-alpha09
משוחרר. גרסת 2.5.0-alpha09 כוללת את ההוספות האלה.
גרסה 2.5.0-alpha08
18 בספטמבר 2024
androidx.sqlite:sqlite-*:2.5.0-alpha08
משוחרר. גרסת 2.5.0-alpha08 מכילה את ההוספות האלה.
גרסה 2.5.0-alpha07
21 באוגוסט 2024
androidx.sqlite:sqlite-*:2.5.0-alpha07
משוחרר. הגרסה 2.5.0-alpha07 כוללת את ההוספות האלה.
תכונות חדשות
- הוספת תמיכה ב-Linux ARM 64 ביעדים של JVM או של מחשב. (b/358045505)
גרסה 2.5.0-alpha06
7 באוגוסט 2024
androidx.sqlite:sqlite-*:2.5.0-alpha06
משוחרר. הגרסה 2.5.0-alpha06 מכילה את ההוספות האלה.
תכונות חדשות
- הוספת תמיכה עבור
linuxArm64
Kotlin Multiplatform target (I139d3, b/338268719)
גרסה 2.5.0-alpha05
10 ביולי 2024
androidx.sqlite:sqlite-*:2.5.0-alpha05
משוחרר. גרסת 2.5.0-alpha05 מכילה את ההוספות האלה.
שינויים ב-API
- השם של
SQLiteKt
השתנה ל-SQLite
והשם שלBundledSQLiteKt
השתנה ל-BundledSQLite
. (I8b501)
גרסה 2.5.0-alpha04
12 ביוני 2024
androidx.sqlite:sqlite-*:2.5.0-alpha04
משוחרר. גרסת 2.5.0-alpha04 מכילה את ההוספות האלה.
שינויים ב-API
- נוספה פונקציית API של עומס יתר (overload) ל-
open()
ב-BundledSQLiteDriver
כדי להעביר דגלים פתוחים כשפותחים חיבור למסד נתונים. שימושי לפתיחת מסד נתונים במצב קריאה בלבד או לשימוש במצב מאובטח לשרשור במקום במצב מרובה-שרשורים שבו SQLite נוצר (b/340949940).
תיקוני באגים
- תוקנה בעיה בקישור ב-Bundled SQLite Driver שגרמה להשלכת
UnsatisfiedLinkError
בגלל סימנים אטומיים חסרים במכשירי Android עם ARM32. (b/341639198) - תוקנה בעיה בנהגים שבה קישור של מערך בייטים באורך אפס לעמודה הוביל לערך null בקריאה ממנו.
גרסה 2.5.0-alpha03
29 במאי 2024
androidx.sqlite:sqlite-*:2.5.0-alpha03
משוחרר. גרסת 2.5.0-alpha03 מכילה את ההוספות האלה.
תיקוני באגים
- תוקנה בעיה ב-
BundledSQLiteDriver
שבה מסדי נתונים שנוצרו באמצעותו יכללו את תו ה-null terminator של C. (b/340822359)
גרסה 2.5.0-alpha02
14 במאי 2024
androidx.sqlite:sqlite-*:2.5.0-alpha02
פורסם ללא שינויים משמעותיים מאז 2.5.0-alpha01 . גרסת 2.5.0-alpha02 כוללת את ההוספות האלה.
גרסה 2.5.0-alpha01
1 במאי 2024
androidx.sqlite:sqlite-*:2.5.0-alpha01
משוחרר. הגרסה 2.5.0-alpha01 כוללת את ההוספות האלה.
תכונות חדשות
- תמיכה ב-Kotlin Multi-Platform (KMP): עם השקת Room 2.7.0-alpha01, הגרסה הראשונה של Room KMP, עודכנו גם ממשקי ה-API של
SQLite
שמאפשרים ל-Room להיות KMP. החבילהandriodx.sqlite
מכילה שלושה ממשקים שמגדירים ממשקי API ברמה נמוכה של SQLite:SQLiteDriver
, SQLiteConnection
ו-SQLiteStatement
. הארטיפקטandroidx.sqlite:sqlite-framework
מציע הטמעה של הממשקים ל-Android ול-iOS באופן מקורי, ואילוandroidx.sqlite:sqlite-bundled
מציע הטמעה שמשתמשת ב-SQLite
שעבר הידור מהמקור (נקרא גם 'SQLite בחבילה'). מידע נוסף על SQLite Driver API זמין בתיעוד הרשמי של SQLite KMP.
גרסה 2.4
גרסה
18 באוקטובר 2023
androidx.sqlite:sqlite:2.4.0
, androidx.sqlite:sqlite-framework:2.4.0
ו-androidx.sqlite:sqlite-ktx:2.4.0
שוחררו. גרסה 2.4.0 כוללת את השמירות האלה.
שינויים חשובים מאז גרסה 2.3.0
- נוספו תיקוני באגים שונים.
גרסה 2.4.0-rc01
20 בספטמבר 2023
התכונות androidx.sqlite:sqlite:2.4.0-rc01
, androidx.sqlite:sqlite-framework:2.4.0-rc01
וגם androidx.sqlite:sqlite-ktx:2.4.0-rc01
משוחררות. גרסה 2.4.0-rc01 כוללת את ההצהרות האלה.
גרסה 2.4.0-beta01
23 באוגוסט 2023
androidx.sqlite:sqlite:2.4.0-beta01
, androidx.sqlite:sqlite-framework:2.4.0-beta01
ו-androidx.sqlite:sqlite-ktx:2.4.0-beta01
שוחררו. גרסה 2.4.0-beta01 מכילה את התחייבויות אלה.
גרסה 2.4.0-alpha03
9 באוגוסט 2023
התכונות androidx.sqlite:sqlite:2.4.0-alpha03
, androidx.sqlite:sqlite-framework:2.4.0-alpha03
וגם androidx.sqlite:sqlite-ktx:2.4.0-alpha03
משוחררות. גרסה 2.4.0-alpha03 מכילה את ההצהרות האלה.
גרסה 2.4.0-alpha02
21 ביוני 2023
androidx.sqlite:sqlite:2.4.0-alpha02
, androidx.sqlite:sqlite-framework:2.4.0-alpha02
ו-androidx.sqlite:sqlite-ktx:2.4.0-alpha02
פורסמו ללא שינויים. גרסה 2.4.0-alpha02 כוללת את ההצהרות האלה.
גרסה 2.4.0-alpha01
22 במרץ 2023
התכונות androidx.sqlite:sqlite:2.4.0-alpha01
, androidx.sqlite:sqlite-framework:2.4.0-alpha01
וגם androidx.sqlite:sqlite-ktx:2.4.0-alpha01
משוחררות. גרסה 2.4.0-alpha01 מכילה את ההצהרות האלה.
תיקוני באגים
- תוקנו
NullPointerException
שעשויים להתרחש בSupportSQLiteQueryBuilder
. (5df8698)
גרסה 2.3.1
גרסה 2.3.1
22 במרץ 2023
התכונות androidx.sqlite:sqlite:2.3.1
, androidx.sqlite:sqlite-framework:2.3.1
וגם androidx.sqlite:sqlite-ktx:2.3.1
משוחררות. גרסה 2.3.1 כוללת את ההתחייבויות האלה.
תיקוני באגים
- מניעת בעיה במסגרת שבה שאילתות SQL לא יבוטל אחרי שינוי הסכימה במהלך העברות.
FrameworkSupportSQLiteOpenHelper
יגדיר עכשיו את המטמון המינימלי של משפטי SQL במהלך העברות כדי למנוע את הבעיה. (0ad2a8f) - תוקנה בעיה שבה יכול להיות שספריית המטמון לא תהיה זמינה לשימוש ב-
SupportSQLiteLock
, ולכן צריך לטפל ב-File null בצורה תקינה. (9d177dc) - תוקנה בעיה שבה הפונקציה
attachedDbs
לא החזירה את הרשימה המלאה של מסדי הנתונים המצורפים. (5f008e1)
גרסה 2.3.0
גרסה 2.3.0
11 בינואר 2023
התכונות androidx.sqlite:sqlite:2.3.0
, androidx.sqlite:sqlite-framework:2.3.0
וגם androidx.sqlite:sqlite-ktx:2.3.0
משוחררות. גרסה 2.3.0 כוללת את ההצהרות האלה.
שינויים חשובים מאז 2.2.0
- מקורות הקוד של קבוצת הספריות
androidx.sqlite
הומרו מ-Java ל-Kotlin. הערה: מכיוון שב-androidx.sqlite
חסרות הערות לגבי תכונת ה-null, יכול להיות שיהיו שגיאות של חוסר תאימות של המקור אם המקורות שלך נמצאים ב-Kotlin והקוד הסיק שיכולת ה-null שגויה. בנוסף, שיטות getter מסוימות הומרו למאפיינים שדורשים את תחביר הגישה למאפיין בקבצי Kotlin. אם יש אי-תאימות משמעותית, יש לדווח על באג. (b/240707042) - מוסיפים ממשק API בתצורה של
SupportSQLite's
כדי לאפשר אובדן נתונים במהלך מנגנון השחזור. (I1b830, b/215592732) - נוספו ממשקי API לנעילת תהליכים מרובים ושימוש בהם ברמה
FrameworkSQLite*
, כדי להגן על יצירה והעברות של מסדי נתונים בפעם הראשונה בתהליכים מרובים. (Ied267, b/193182592)
גרסה 2.3.0-rc01
7 בדצמבר 2022
התכונות androidx.sqlite:sqlite:2.3.0-rc01
, androidx.sqlite:sqlite-framework:2.3.0-rc01
וגם androidx.sqlite:sqlite-ktx:2.3.0-rc01
משוחררות. גרסה 2.3.0-rc01 כוללת את ההצהרות האלה.
תיקוני באגים
- פתרון בעיה שקשורה ל-NPE ב-
SupportSQLiteQueryBuilder
לגבי עמודות שמאפשרות null. (Ica8f5)
גרסה 2.3.0-beta02
9 בנובמבר 2022
התכונות androidx.sqlite:sqlite:2.3.0-beta02
, androidx.sqlite:sqlite-framework:2.3.0-beta02
וגם androidx.sqlite:sqlite-ktx:2.3.0-beta02
משוחררות. גרסה 2.3.0-beta02 מכילה את השמירות האלה.
- תיקון ממשקי API שונים שלוקחים ארגומנטים של שאילתות מערכים קבועים (
Array<Any?>
) לניגודיות (Array<out Any?>
) כדי להתאים להתנהגות המערך של Java. (b/253531073)
גרסה 2.3.0-beta01
5 באוקטובר 2022
התכונות androidx.sqlite:sqlite:2.3.0-beta01
, androidx.sqlite:sqlite-framework:2.3.0-beta01
וגם androidx.sqlite:sqlite-ktx:2.3.0-beta01
משוחררות. גרסה 2.3.0-beta01 מכילה את התחייבויות אלה.
שינויים ב-API
- כל המקורות של android.sqlite הומרו מ-Java ל-Kotlin. b/240707042
- שינוי חשוב אחד בהמרה הוא שפונקציות getter הבאות הפכו לנכסים:
- ב-
SupportSQLiteDatabase
: attachedDbs
isDatabaseIntegrityOk
isDbLockedByCurrentThread
isOpen
isReadOnly
isWriteAheadLoggingEnabled
maximumSize
pageSize
path
version
- ב-
SupportSQLiteOpenHelper
: databaseName
readableDatabase
writableDatabase
- ב-
גרסה 2.3.0-alpha05
24 באוגוסט 2022
התכונות androidx.sqlite:sqlite:2.3.0-alpha05
, androidx.sqlite:sqlite-framework:2.3.0-alpha05
וגם androidx.sqlite:sqlite-ktx:2.3.0-alpha05
משוחררות. גרסה 2.3.0-alpha05 מכילה את התחייבויות אלה.
שינויים ב-API
- המקורות של קבוצת הספריות androidx.sqlite הומרו מ-Java ל-Kotlin. חשוב לזכור שב-androidx.sqlite היו כמה הערות חסרות לגבי אפשרות האפסיות (nullability), ולכן יכול להיות שתקבלו שגיאות של חוסר תאימות למקור אם המקורות שלכם הם ב-Kotlin והקוד הסיק את האפשרות הלא נכונה לגבי האפסיות. אם יש אי-תאימות משמעותית, יש לדווח על באג. (b/240707042)
גרסה 2.3.0-alpha04
10 באוגוסט 2022
androidx.sqlite:sqlite:2.3.0-alpha04
, androidx.sqlite:sqlite-framework:2.3.0-alpha04
ו-androidx.sqlite:sqlite-ktx:2.3.0-alpha04
שוחררו. גרסה 2.3.0-alpha04 מכילה את ההצהרות האלה.
שינויים ב-API
- עדכון של האפשרות לקבלת ערך null (I29fbd)
גרסה 2.3.0-alpha03
1 ביוני 2022
התכונות androidx.sqlite:sqlite:2.3.0-alpha03
, androidx.sqlite:sqlite-framework:2.3.0-alpha03
וגם androidx.sqlite:sqlite-ktx:2.3.0-alpha03
משוחררות. גרסה 2.3.0-alpha03 מכילה את ההוספות האלה.
שינויים ב-API
- הגבלת
androidx.sqlite.ProcessLock
. ל-API יש היקף הרשאות ומוגבלות לפונקציה שלו בתוךandroidx.sqlite
, ולא ניתן להשתמש בו כנעילה של מספר תהליכים באופן כללי. (I1643f)
גרסה 2.3.0-alpha02
6 באפריל 2022
androidx.sqlite:sqlite:2.3.0-alpha02
, androidx.sqlite:sqlite-framework:2.3.0-alpha02
ו-androidx.sqlite:sqlite-ktx:2.3.0-alpha02
שוחררו. גרסה 2.3.0-alpha02 מכילה את ההוספות האלה.
- לא בוצעו שינויים משמעותיים מאז 2.3.0-alpha01
גרסה 2.3.0-alpha01
23 בפברואר 2022
התכונות androidx.sqlite:sqlite:2.3.0-alpha01
, androidx.sqlite:sqlite-framework:2.3.0-alpha01
וגם androidx.sqlite:sqlite-ktx:2.3.0-alpha01
משוחררות. גרסה 2.3.0-alpha01 מכילה את ההוספות האלה.
שינויים ב-API
- מוסיפים API בתצורה של SupportSQLite כדי לאפשר אובדן נתונים במהלך מנגנון השחזור. (I1b830, b/215592732)
- נוספו ממשקי API לנעילת תהליכים מרובים ולשימוש בהם ברמת FrameworkSQLite*, כדי להגן על יצירה והעברות של מסדי נתונים בפעם הראשונה בתהליכים מרובים. (Ied267, b/193182592)
גרסה
גרסה
15 בדצמבר 2021
התכונות androidx.sqlite:sqlite:2.2.0
, androidx.sqlite:sqlite-framework:2.2.0
וגם androidx.sqlite:sqlite-ktx:2.2.0
משוחררות. גרסה 2.2.0 כוללת את השינויים האלה.
שינויים חשובים מאז גרסה 2.1.0
מוסיפים את שיטת ברירת המחדל עבור execPerConnectionSQL()
ב-SupportSQLiteDatabase
.
גרסה 2.2.0-rc01
1 בדצמבר 2021
התכונות androidx.sqlite:sqlite:2.2.0-rc01
, androidx.sqlite:sqlite-framework:2.2.0-rc01
וגם androidx.sqlite:sqlite-ktx:2.2.0-rc01
משוחררות. גרסה 2.2.0-rc01 כוללת את ההצהרות האלה.
לא בוצעו שינויים משמעותיים מאז גרסת 2.2.0-beta01.
גרסה 2.2.0-beta01
13 באוקטובר 2021
התכונות androidx.sqlite:sqlite:2.2.0-beta01
, androidx.sqlite:sqlite-framework:2.2.0-beta01
וגם androidx.sqlite:sqlite-ktx:2.2.0-beta01
משוחררות. גרסה 2.2.0-beta01 מכילה את ההצהרות האלה.
- אין שינויים מגרסת האלפא הקודמת.
גרסה 2.2.0-alpha02
21 ביולי 2021
התכונות androidx.sqlite:sqlite:2.2.0-alpha02
, androidx.sqlite:sqlite-framework:2.2.0-alpha02
וגם androidx.sqlite:sqlite-ktx:2.2.0-alpha02
משוחררות. גרסה 2.2.0-alpha02 כוללת את ההוספות האלה.
לא בוצעו שינויים משמעותיים מאז 2.2.0-alpha01. הגרסה הזו נועדה להתאים את עצמה לגרסה של Room 2.4.0-alpha04
.
גרסה 2.2.0-alpha01
16 ביוני 2021
התכונות androidx.sqlite:sqlite:2.2.0-alpha01
, androidx.sqlite:sqlite-framework:2.2.0-alpha01
וגם androidx.sqlite:sqlite-ktx:2.2.0-alpha01
משוחררות. גרסה 2.2.0-alpha01 מכילה את התחייבויות אלה.
שינויים ב-API
- הוספת שיטת ברירת מחדל ל-
execPerConnectionSQL()
ב-SupportSQLiteDatabase (I86326, b/172270145)
גרסה
גרסה
22 בינואר 2020
הגרסאות androidx.sqlite:sqlite:2.1.0
, androidx.sqlite:sqlite-framework:2.1.0
ו-androidx.sqlite:sqlite-ktx:2.1.0
פורסמו ללא שינויים מאז 2.1.0-rc01
. גרסה 2.1.0 כוללת את ההצהרות האלה.
שינויים חשובים מאז גרסה 2.0.1
- תמיכה ב-
useNoBackupDirectory
, שאפשר להשתמש בה כדי לציין שצריך ליצור את מסד הנתונים בספריית 'ללא גיבוי' כשמשתמשים ב-SupportSQLiteOpenHelper
.
גרסה 2.1.0-rc01
8 בינואר, 2020
androidx.sqlite:sqlite-*:2.1.0-rc01
משוחרר. גרסה 2.1.0-rc01 מכילה את ההתחייבויות האלה.
הגרסה הזו זהה לגרסה 2.1.0-beta01
.
גרסה 2.1.0-beta01
4 בדצמבר 2019
הגרסאות androidx.sqlite:sqlite:2.1.0-beta01
, androidx.sqlite:sqlite-framework:2.1.0-beta01
ו-androidx.sqlite:sqlite-ktx:2.1.0-beta01
פורסמו ללא שינויים מאז 2.1.0-alpha01
. גרסה 2.1.0-beta01 כוללת את ההצהרות האלה.
גרסה 2.1.0-alpha01
7 בנובמבר 2019
התכונות androidx.sqlite:sqlite:2.1.0-alpha01
, androidx.sqlite:sqlite-framework:2.1.0-alpha01
וגם androidx.sqlite:sqlite-ktx:2.1.0-alpha01
משוחררות. גרסה 2.1.0-alpha01 מכילה את ההצהרות האלה.
שינויים ב-API
- נוסף מאפיין חדש ל-
SupportSQLiteOpenHelper.Configuration
בשםuseNoBackupDirectory
כדי לציין שצריך ליצור מסד נתונים מבוסס קבצים ולאתר אותו מספריית גיבוי.
גרסה 2.0.1
גרסה 2.0.1
13 במרץ 2019
גרסה 2.0.1 של קבוצת הארטיפקטים androidx.sqlite
פורסמה עם שני תיקוני באגים.
תיקוני באגים
- תוקנו שתי בעיות שבהן
FrameworkSQLiteOpenHelper
לא התאושש כראוי ממסד נתונים פגום או מהעברה שגויה במהלך האינטליגנציה. (b/111504749 ו-b/111519144)