Sqlite

La libreria androidx.sqlite contiene interfacce astratte e implementazioni di base che possono essere utilizzate per creare le tue librerie che accedono a SQLite.

Ti consigliamo di utilizzare la libreria Room, che fornisce un livello di astrazione su SQLite per consentire un accesso al database più solido sfruttando al contempo tutta la potenza di SQLite.

Ultimo aggiornamento Release stabile Candidato per la release Versione beta Release alpha
30 ottobre 2024 2.4.0 - - 2.5.0-alpha11

Dichiarazione delle dipendenze

Per aggiungere una dipendenza da SQLite, devi aggiungere il repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il Repository Maven di Google.

Aggiungi le dipendenze per gli elementi necessari nel file build.gradle per la tua app o il tuo modulo:

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")
}

Per ulteriori informazioni sulle dipendenze, consulta Aggiungere dipendenze di compilazione.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.

Creare un nuovo problema

Per ulteriori informazioni, consulta la documentazione di Issue Tracker.

Versione 2.5

Versione 2.5.0-alpha11

30 ottobre 2024

androidx.sqlite:sqlite-*:2.5.0-alpha11 viene rilasciato. La versione 2.5.0-alpha11 contiene questi commit.

Versione 2.5.0-alpha10

16 ottobre 2024

Viene rilasciato androidx.sqlite:sqlite-*:2.5.0-alpha10. La versione 2.5.0-alpha10 contiene questi commit.

Modifiche all'API

  • Aggiungi SQLiteStatement.getColumnType() insieme alle varie costanti di SQLITE_DATA_* per consentire il recupero del tipo di dati di una colonna. (I1985c, b/369636251)

Versione 2.5.0-alpha09

2 ottobre 2024

androidx.sqlite:sqlite-*:2.5.0-alpha09 viene rilasciato. La versione 2.5.0-alpha09 contiene questi commit.

Versione 2.5.0-alpha08

18 settembre 2024

androidx.sqlite:sqlite-*:2.5.0-alpha08 viene rilasciato. La versione 2.5.0-alpha08 contiene questi commit.

Versione 2.5.0-alpha07

21 agosto 2024

androidx.sqlite:sqlite-*:2.5.0-alpha07 viene rilasciato. La versione 2.5.0-alpha07 contiene questi commit.

Nuove funzionalità

  • È stato aggiunto il supporto per Linux ARM 64 nei target JVM / desktop. (b/358045505)

Versione 2.5.0-alpha06

7 agosto 2024

androidx.sqlite:sqlite-*:2.5.0-alpha06 viene rilasciato. La versione 2.5.0-alpha06 contiene questi commit.

Nuove funzionalità

  • Aggiunta del supporto per il target linuxArm64 Kotlin Multiplatform (I139d3, b/338268719)

Versione 2.5.0-alpha05

10 luglio 2024

androidx.sqlite:sqlite-*:2.5.0-alpha05 viene rilasciato. La versione 2.5.0-alpha05 contiene questi commit.

Modifiche alle API

  • SQLiteKt è stato rinominato in SQLite e BundledSQLiteKt in BundledSQLite. (I8b501)

Versione 2.5.0-alpha04

12 giugno 2024

androidx.sqlite:sqlite-*:2.5.0-alpha04 viene rilasciato. La versione 2.5.0-alpha04 contiene questi commit.

Modifiche all'API

  • È stata aggiunta un'API di sovraccarico open() a BundledSQLiteDriver per passare i flag di apertura quando si apre una connessione al database. Utile per aprire un database in modalità di sola lettura o utilizzare la modalità sicura dei thread serializzati al posto della compilazione di SQLite in bundle in modalità multi-thread (b/340949940).

Correzioni di bug

  • È stato risolto un problema di collegamento nel driver SQLite incluso che causava l'emissione di UnsatisfiedLinkError a causa della mancanza di simboli atomici nei dispositivi Android con un processore ARM32. (b/341639198)
  • È stato risolto un problema nei driver per cui l'associazione di un array di byte di lunghezza zero a una colonna generava un valore nullo durante la lettura.

Versione 2.5.0-alpha03

29 maggio 2024

androidx.sqlite:sqlite-*:2.5.0-alpha03 viene rilasciato. La versione 2.5.0-alpha03 contiene questi commit.

Correzioni di bug

  • Risolto un problema relativo a BundledSQLiteDriver per cui i database creati con questo comando contenevano il carattere di terminazione nullo C. (b/340822359)

Versione 2.5.0-alpha02

14 maggio 2024

androidx.sqlite:sqlite-*:2.5.0-alpha02 viene rilasciato senza modifiche significative dalla versione 2.5.0-alpha01 . La versione 2.5.0-alpha02 contiene questi commit.

Versione 2.5.0-alpha01

1° maggio 2024

androidx.sqlite:sqlite-*:2.5.0-alpha01 viene rilasciato. La versione 2.5.0-alpha01 contiene questi commit.

Nuove funzionalità

  • Supporto di Kotlin Multi-Platform (KMP): con il rilascio di Room 2.7.0-alpha01, la prima release di Room KMP, sono state aggiornate anche le API SQLite che consentono a Room di essere KMP. Il pacchetto andriodx.sqlite contiene tre interfacce che definiscono le API SQLite di basso livello: SQLiteDriver, SQLiteConnection e SQLiteStatement. L'artifact androidx.sqlite:sqlite-framework offre l'implementazione delle interfacce per Android e iOS in modo nativo, mentre androidx.sqlite:sqlite-bundled offre un'implementazione che utilizza SQLite compilato dal codice sorgente (noto anche come "SQLite in bundle"). Per ulteriori informazioni sull'API Driver SQLite, consulta la documentazione ufficiale di SQLite KMP.

Versione 2.4

Versione 2.4.0

18 ottobre 2023

androidx.sqlite:sqlite:2.4.0, androidx.sqlite:sqlite-framework:2.4.0 e androidx.sqlite:sqlite-ktx:2.4.0 vengono rilasciati. La versione 2.4.0 contiene questi commit.

Modifiche importanti dalla versione 2.3.0

  • Sono state aggiunte varie correzioni di bug.

Versione 2.4.0-rc01

20 settembre 2023

androidx.sqlite:sqlite:2.4.0-rc01, androidx.sqlite:sqlite-framework:2.4.0-rc01 e androidx.sqlite:sqlite-ktx:2.4.0-rc01 vengono rilasciati. La versione 2.4.0-rc01 contiene questi commit.

Versione 2.4.0-beta01

23 agosto 2023

androidx.sqlite:sqlite:2.4.0-beta01, androidx.sqlite:sqlite-framework:2.4.0-beta01 e androidx.sqlite:sqlite-ktx:2.4.0-beta01 vengono rilasciati. La versione 2.4.0-beta01 contiene questi commit.

Versione 2.4.0-alpha03

9 agosto 2023

androidx.sqlite:sqlite:2.4.0-alpha03, androidx.sqlite:sqlite-framework:2.4.0-alpha03 e androidx.sqlite:sqlite-ktx:2.4.0-alpha03 vengono rilasciati. La versione 2.4.0-alpha03 contiene questi commit.

Versione 2.4.0-alpha02

21 giu 2023

androidx.sqlite:sqlite:2.4.0-alpha02, androidx.sqlite:sqlite-framework:2.4.0-alpha02 e androidx.sqlite:sqlite-ktx:2.4.0-alpha02 vengono rilasciati senza modifiche. La versione 2.4.0-alpha02 contiene questi commit.

Versione 2.4.0-alpha01

22 marzo 2023

androidx.sqlite:sqlite:2.4.0-alpha01, androidx.sqlite:sqlite-framework:2.4.0-alpha01 e androidx.sqlite:sqlite-ktx:2.4.0-alpha01 vengono rilasciati. La versione 2.4.0-alpha01 contiene questi commit.

Correzioni di bug

  • È stato corretto un NullPointerException che potrebbe verificarsi in SupportSQLiteQueryBuilder. (5df8698)

Versione 2.3.1

Versione 2.3.1

22 marzo 2023

Vengono rilasciate le funzionalità androidx.sqlite:sqlite:2.3.1, androidx.sqlite:sqlite-framework:2.3.1 e androidx.sqlite:sqlite-ktx:2.3.1. La versione 2.3.1 contiene questi commit.

Correzioni di bug

  • È stato evitato un problema del framework per cui le query SQL non venivano invalidate dopo una modifica dello schema durante le migrazioni. FrameworkSupportSQLiteOpenHelper ora imposterà la cache delle istruzioni SQL minima durante le migrazioni per evitare il problema. (0ad2a8f)
  • È stato risolto un problema per cui la directory della cache potrebbe non essere disponibile per l'uso per SupportSQLiteLock, pertanto è necessario gestire correttamente un file nullo. (9d177dc)
  • È stato risolto un problema per cui attachedDbs non restituiva l'elenco completo dei database collegati. (5f008e1).

Versione 2.3.0

Versione 2.3.0

11 gennaio 2023

androidx.sqlite:sqlite:2.3.0, androidx.sqlite:sqlite-framework:2.3.0 e androidx.sqlite:sqlite-ktx:2.3.0 vengono rilasciati. La versione 2.3.0 contiene questi commit.

Modifiche importanti dalla versione 2.2.0

  • Le origini del gruppo di librerie androidx.sqlite sono state convertite da Java a Kotlin. Tieni presente che, poiché androidx.sqlite mancava di alcune annotazioni di nullità, potresti riscontrare errori di incompatibilità delle origini se le origini sono in Kotlin e il codice deduceva la nullità errata. Inoltre, alcuni metodi getter sono stati convertiti in proprietà che richiedono la sintassi di accesso alle proprietà nei file Kotlin. Segnala un bug se si verificano incompatibilità significative. (b/240707042)
  • Aggiungi un'API nella configurazione SupportSQLite's per consentire la perdita di dati durante il meccanismo di recupero. (I1b830, b/215592732)
  • È stata aggiunta un'API per il blocco e l'utilizzo a livello di FrameworkSQLite* per proteggere le migrazioni e la creazione del database per la prima volta a livello multi-processo. (Ied267, b/193182592)

Versione 2.3.0-rc01

7 dicembre 2022

androidx.sqlite:sqlite:2.3.0-rc01, androidx.sqlite:sqlite-framework:2.3.0-rc01 e androidx.sqlite:sqlite-ktx:2.3.0-rc01 vengono rilasciati. La versione 2.3.0-rc01 contiene questi commit.

Correzioni di bug

  • Risoluzione del problema NPE in SupportSQLiteQueryBuilder per le colonne con valori null. (Ica8f5)

Versione 2.3.0-beta02

9 novembre 2022

androidx.sqlite:sqlite:2.3.0-beta02, androidx.sqlite:sqlite-framework:2.3.0-beta02 e androidx.sqlite:sqlite-ktx:2.3.0-beta02 vengono rilasciati. La versione 2.3.0-beta02 contiene questi commit.

  • Correggi varie API che trasformano gli argomenti delle query da invarianti (Array<Any?>) a contravarianti (Array<out Any?>) per corrispondere al comportamento dell'array di Java. (b/253531073)

Versione 2.3.0-beta01

5 ottobre 2022

androidx.sqlite:sqlite:2.3.0-beta01, androidx.sqlite:sqlite-framework:2.3.0-beta01 e androidx.sqlite:sqlite-ktx:2.3.0-beta01 vengono rilasciati. La versione 2.3.0-beta01 contiene questi commit.

Modifiche all'API

  • Tutte le sorgenti di android.sqlite sono state convertite da Java a Kotlin. b/240707042
  • Una modifica significativa della conversione è che le seguenti funzioni getter sono diventate proprietà:
    • In SupportSQLiteDatabase:
    • attachedDbs
    • isDatabaseIntegrityOk
    • isDbLockedByCurrentThread
    • isOpen
    • isReadOnly
    • isWriteAheadLoggingEnabled
    • maximumSize
    • pageSize
    • path
    • version
    • In SupportSQLiteOpenHelper:
    • databaseName
    • readableDatabase
    • writableDatabase

Versione 2.3.0-alpha05

24 agosto 2022

androidx.sqlite:sqlite:2.3.0-alpha05, androidx.sqlite:sqlite-framework:2.3.0-alpha05 e androidx.sqlite:sqlite-ktx:2.3.0-alpha05 vengono rilasciati. La versione 2.3.0-alpha05 contiene questi commit.

Modifiche all'API

  • Le origini del gruppo di librerie androidx.sqlite sono state convertite da Java a Kotlin. Tieni presente che, poiché androidx.sqlite mancava di alcune annotazioni di nullità, potresti riscontrare errori di incompatibilità delle origini se le origini sono in Kotlin e il codice deduceva la nullità errata. Segnala un bug se riscontri incompatibilità significative. (b/240707042)

Versione 2.3.0-alpha04

10 agosto 2022

androidx.sqlite:sqlite:2.3.0-alpha04, androidx.sqlite:sqlite-framework:2.3.0-alpha04 e androidx.sqlite:sqlite-ktx:2.3.0-alpha04 vengono rilasciati. La versione 2.3.0-alpha04 contiene questi commit.

Modifiche all'API

Versione 2.3.0-alpha03

1° giugno 2022

androidx.sqlite:sqlite:2.3.0-alpha03, androidx.sqlite:sqlite-framework:2.3.0-alpha03 e androidx.sqlite:sqlite-ktx:2.3.0-alpha03 vengono rilasciati. La versione 2.3.0-alpha03 contiene questi commit.

Modifiche all'API

  • Imposta androidx.sqlite.ProcessLock come con limitazioni. L'API è limitata alla sua funzione all'interno di androidx.sqlite e non deve essere utilizzata come blocco multiprocesso generico. (I1643f)

Versione 2.3.0-alpha02

6 aprile 2022

androidx.sqlite:sqlite:2.3.0-alpha02, androidx.sqlite:sqlite-framework:2.3.0-alpha02 e androidx.sqlite:sqlite-ktx:2.3.0-alpha02 vengono rilasciati. La versione 2.3.0-alpha02 contiene questi commit.

  • Nessuna modifica significativa dalla versione 2.3.0-alpha01

Versione 2.3.0-alpha01

23 febbraio 2022

androidx.sqlite:sqlite:2.3.0-alpha01, androidx.sqlite:sqlite-framework:2.3.0-alpha01 e androidx.sqlite:sqlite-ktx:2.3.0-alpha01 vengono rilasciati. La versione 2.3.0-alpha01 contiene questi commit.

Modifiche alle API

  • Aggiungi un'API nella configurazione di SupportSQLite per consentire la perdita di dati durante il meccanismo di recupero. (I1b830, b/215592732)
  • È stata aggiunta un'API per il blocco e l'utilizzo a più processi a livello di FrameworkSQLite*, per proteggere le migrazioni e la creazione del database per la prima volta a più processi. (Ied267, b/193182592)

Versione 2.2.0

Versione 2.2.0

15 dicembre 2021

androidx.sqlite:sqlite:2.2.0, androidx.sqlite:sqlite-framework:2.2.0 e androidx.sqlite:sqlite-ktx:2.2.0 vengono rilasciati. La versione 2.2.0 contiene questi commit.

Modifiche importanti dalla versione 2.1.0

Aggiungi il metodo predefinito per execPerConnectionSQL() in SupportSQLiteDatabase.

Versione 2.2.0-rc01

1° dicembre 2021

androidx.sqlite:sqlite:2.2.0-rc01, androidx.sqlite:sqlite-framework:2.2.0-rc01 e androidx.sqlite:sqlite-ktx:2.2.0-rc01 vengono rilasciati. La versione 2.2.0-rc01 contiene questi commit.

Nessuna modifica significativa rispetto alla versione 2.2.0-beta01.

Versione 2.2.0-beta01

13 ottobre 2021

androidx.sqlite:sqlite:2.2.0-beta01, androidx.sqlite:sqlite-framework:2.2.0-beta01 e androidx.sqlite:sqlite-ktx:2.2.0-beta01 vengono rilasciati. La versione 2.2.0-beta01 contiene questi commit.

  • Nessuna modifica rispetto alla versione alpha precedente.

Versione 2.2.0-alpha02

21 luglio 2021

Vengono rilasciate le funzionalità androidx.sqlite:sqlite:2.2.0-alpha02, androidx.sqlite:sqlite-framework:2.2.0-alpha02 e androidx.sqlite:sqlite-ktx:2.2.0-alpha02. La versione 2.2.0-alpha02 contiene questi commit.

Nessuna modifica significativa rispetto alla versione 2.2.0-alpha01. Questa release è solo per allinearsi alla release di Room 2.4.0-alpha04.

Versione 2.2.0-alpha01

16 giugno 2021

Vengono rilasciate le funzionalità androidx.sqlite:sqlite:2.2.0-alpha01, androidx.sqlite:sqlite-framework:2.2.0-alpha01 e androidx.sqlite:sqlite-ktx:2.2.0-alpha01. La versione 2.2.0-alpha01 contiene questi commit.

Modifiche all'API

  • Aggiungi il metodo predefinito per execPerConnectionSQL() in SupportSQLiteDatabase (I86326, b/172270145)

Versione 2.1.0

Versione 2.1.0

22 gennaio 2020

androidx.sqlite:sqlite:2.1.0, androidx.sqlite:sqlite-framework:2.1.0 e androidx.sqlite:sqlite-ktx:2.1.0 vengono rilasciati senza modifiche dal 2.1.0-rc01. La versione 2.1.0 contiene questi commit.

Modifiche importanti dalla versione 2.0.1

  • Supporto di useNoBackupDirectory, che può essere utilizzato per indicare che il database deve essere creato nella directory senza backup quando si utilizza SupportSQLiteOpenHelper.

Versione 2.1.0-rc01

8 gennaio 2020

androidx.sqlite:sqlite-*:2.1.0-rc01 viene rilasciato. La versione 2.1.0-rc01 contiene questi commit.

Questa release è identica a 2.1.0-beta01.

Versione 2.1.0-beta01

4 dicembre 2019

androidx.sqlite:sqlite:2.1.0-beta01, androidx.sqlite:sqlite-framework:2.1.0-beta01 e androidx.sqlite:sqlite-ktx:2.1.0-beta01 vengono rilasciati senza modifiche dal 2.1.0-alpha01. La versione 2.1.0-beta01 contiene questi commit.

Versione 2.1.0-alpha01

7 novembre 2019

androidx.sqlite:sqlite:2.1.0-alpha01, androidx.sqlite:sqlite-framework:2.1.0-alpha01 e androidx.sqlite:sqlite-ktx:2.1.0-alpha01 vengono rilasciati. La versione 2.1.0-alpha01 contiene questi commit.

Modifiche alle API

  • È stata aggiunta una nuova proprietà a SupportSQLiteOpenHelper.Configuration denominata useNoBackupDirectory per indicare che è necessario creare un database basato su file e posizionarlo dalla directory senza backup.

Versione 2.0.1

Versione 2.0.1

13 marzo 2019

È stata rilasciata la versione 2.0.1 del gruppo di elementi androidx.sqlite con due correzioni di bug.

Correzioni di bug

  • Sono stati risolti due problemi relativi al recupero improprio di FrameworkSQLiteOpenHelper da un database danneggiato o da una migrazione non corretta durante l'inizializzazione. (b/111504749 e b/111519144)