Sqlite

הספרייה androidx.sqlite מכילה ממשקים מופשטים והטמעות בסיסיות שאפשר להשתמש בהן כדי לבנות ספריות משלכם שניגשים ל-SQLite.

מומלץ להשתמש בספרייה Room, שמספקת שכבת הפשטה מעל SQLite כדי לאפשר גישה חזקה יותר למסד הנתונים, תוך ניצול מלוא העוצמה של SQLite.

העדכון האחרון גרסה יציבה מועמד לגרסה גרסת בטא גרסה אלפא
30 באוקטובר 2024 2.4.0 - - 2.5.0-alpha11

הצהרת יחסי תלות

כדי להוסיף תלות ב-SQLite, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאגר Maven של Google.

מוסיפים את יחסי התלות של הארטיפקטים הנדרשים בקובץ build.gradle של האפליקציה או המודול:

מגניב

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)