Sqlite

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

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

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

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

כדי להוסיף תלות ב-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-alpha12

11 בדצמבר 2024

androidx.sqlite:sqlite-*:2.5.0-alpha12 משוחרר. גרסת 2.5.0-alpha12 כוללת את ההוספות האלה.

גרסה 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 (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

גרסה 2.4.0

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 הערות לגבי אפשרות האפסיות, יכול להיות שתקבלו שגיאות של חוסר תאימות למקורות אם המקורות שלכם הם ב-Kotlin והקוד הסיק בטעות את אפשרות האפסיות. בנוסף, שיטות 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 בעמודות עם אפשרות לאפס. (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 שונים שמעבירים את הארגומנטים של השאילתות מ-invariant (Array<Any?>) ל-contravariant (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 היו הערות חסרות לגבי אפשרות האפסיות, ולכן יכול להיות שתקבלו שגיאות של חוסר תאימות למקור אם המקורות שלכם הם ב-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)

גרסה 2.2.0

גרסה 2.2.0

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)

גרסה 2.1.0

גרסה 2.1.0

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)