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.

Potresti prendere in considerazione l'utilizzo della libreria Room, che fornisce un livello di astrazione rispetto a SQLite per consentire un accesso più affidabile al database sfruttando al contempo tutta la potenza di SQLite.

Aggiornamento più recente Release stabile Candidato per l'uscita Versione beta Release alpha
10 luglio 2024 2.4.0 - - 2.5.0-alpha05

Dichiarazione delle dipendenze

Per aggiungere una dipendenza su 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 artefatti necessari nel file build.gradle per l'app o il modulo:

trendy

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 saperne di più sulle dipendenze, consulta Aggiungere dipendenze build.

Feedback

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

Crea un nuovo numero

Per ulteriori informazioni, consulta la documentazione di Issue Tracker.

Versione 2.5

Versione 2.5.0-alpha05

10 luglio 2024

Viene rilasciato androidx.sqlite:sqlite-*:2.5.0-alpha05. 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

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

Modifiche alle API

  • È stata aggiunta un'API di sovraccarico open() a BundledSQLiteDriver per passare i flag aperti all'apertura di una connessione di 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 in bundle che causava la generazione di UnsatisfiedLinkError a causa di simboli atomici mancanti nei dispositivi Android con un ARM32. (b/341639198)
  • È stato risolto un problema nei driver per cui l'associazione di un array di byte di lunghezza zero in una colonna porta a un valore nullo durante la lettura da quel valore.

Versione 2.5.0-alpha03

29 maggio 2024

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

Correzioni di bug

  • Risolvi un problema relativo a BundledSQLiteDriver in cui i database creati con questo 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

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

Nuove funzionalità

  • Supporto Kotlin Multi-Platform (KMP): con il rilascio della stanza 2.7.0-alpha01, che è 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'elemento androidx.sqlite:sqlite-framework offre l'implementazione nativa delle interfacce per Android e iOS, mentre androidx.sqlite:sqlite-bundled offre un'implementazione che utilizza SQLite compilato dal codice sorgente (nota anche come "SQLite in bundle"). Per ulteriori informazioni sull'API SQLite Driver, fai riferimento alla documentazione ufficiale SQLite KMP.

Versione 2.4

Versione 2.4.0

18 ottobre 2023

Vengono rilasciate le funzionalità androidx.sqlite:sqlite:2.4.0, androidx.sqlite:sqlite-framework:2.4.0 e androidx.sqlite:sqlite-ktx:2.4.0. 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

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

Versione 2.4.0-beta01

23 agosto 2023

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

Versione 2.4.0-alpha03

9 agosto 2023

Vengono rilasciate le funzionalità androidx.sqlite:sqlite:2.4.0-alpha03, androidx.sqlite:sqlite-framework:2.4.0-alpha03 e androidx.sqlite:sqlite-ktx:2.4.0-alpha03. 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 rilasciate senza modifiche. La versione 2.4.0-alpha02 contiene questi commit.

Versione 2.4.0-alpha01

22 marzo 2023

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

Correzioni di bug

  • È stato corretto un NullPointerException che poteva 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

  • Evita problemi relativi al framework per cui le query SQL non vengono invalidate dopo una modifica dello schema durante le migrazioni. Ora FrameworkSupportSQLiteOpenHelper imposterà la cache minima delle istruzioni SQL durante le migrazioni per evitare il problema. (0ad2a8f)
  • 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)
  • 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

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

Modifiche importanti dalla versione 2.2.0

  • Il gruppo di librerie androidx.sqlite origini è stato convertito da Java a Kotlin. Tieni presente che, poiché in androidx.sqlite mancavano alcune annotazioni dei valori NULL, potresti riscontrare errori di incompatibilità della fonte se le tue fonti sono in Kotlin e il codice deduceva il valore nullo sbagliato. Inoltre, alcuni metodi getter sono stati convertiti in proprietà che richiedono la sintassi di accesso alle proprietà nei file Kotlin. Segnala un bug in caso di 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)
  • Aggiunta un'API per il blocco e l'utilizzo multi-processo a livello di FrameworkSQLite*, al fine di proteggere la creazione e le migrazioni di database multi-processo la prima volta. (Ied267, b/193182592)

Versione 2.3.0-rc01

7 dicembre 2022

Vengono rilasciate le funzionalità androidx.sqlite:sqlite:2.3.0-rc01, androidx.sqlite:sqlite-framework:2.3.0-rc01 e androidx.sqlite:sqlite-ktx:2.3.0-rc01. 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

Vengono rilasciate le funzionalità androidx.sqlite:sqlite:2.3.0-beta02, androidx.sqlite:sqlite-framework:2.3.0-beta02 e androidx.sqlite:sqlite-ktx:2.3.0-beta02. 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

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

Modifiche alle API

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

Versione 2.3.0-alpha05

24 agosto 2022

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

Modifiche alle API

  • Il gruppo di librerie origini androidx.sqlite è stato convertito da Java a Kotlin. Tieni presente che, poiché in androidx.sqlite mancava alcune annotazioni nullità mancanti, potresti riscontrare errori di incompatibilità del codice se le fonti sono in Kotlin e il codice deduceva il valore nullo sbagliato. Segnala un bug in caso di incompatibilità significative. (b/240707042)

Versione 2.3.0-alpha04

10 agosto 2022

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

Modifiche alle API

Versione 2.3.0-alpha03

1 giugno 2022

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

Modifiche alle API

  • Imposta androidx.sqlite.ProcessLock come limitato. L'ambito dell'API è limitato alla sua funzione all'interno di androidx.sqlite e non deve essere utilizzata come blocco multi-processo per uso generico. (I1643f)

Versione 2.3.0-alpha02

6 aprile 2022

Vengono rilasciate le funzionalità androidx.sqlite:sqlite:2.3.0-alpha02, androidx.sqlite:sqlite-framework:2.3.0-alpha02 e androidx.sqlite:sqlite-ktx:2.3.0-alpha02. 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

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

Modifiche alle API

  • Aggiungi un'API alla configurazione di SupportSQLite per consentire la perdita di dati durante il meccanismo di recupero. (I1b830, b/215592732)
  • Aggiunta dell'API per il blocco e l'utilizzo multi-processo a livello di FrameworkSQLite*, al fine di proteggere la creazione e le migrazioni di database multi-processo la prima volta. (Ied267, b/193182592)

Versione 2.2.0

Versione 2.2.0

15 dicembre 2021

Vengono rilasciate le funzionalità androidx.sqlite:sqlite:2.2.0, androidx.sqlite:sqlite-framework:2.2.0 e androidx.sqlite:sqlite-ktx:2.2.0. 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

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

Nessuna modifica significativa dalla versione 2.2.0-beta01.

Versione 2.2.0-beta01

13 ottobre 2021

Vengono rilasciate le funzionalità androidx.sqlite:sqlite:2.2.0-beta01, androidx.sqlite:sqlite-framework:2.2.0-beta01 e androidx.sqlite:sqlite-ktx:2.2.0-beta01. 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 dalla versione 2.2.0-alpha01. Questa release è in linea con la stanza virtuale 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 alle 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 rilasciate senza modifiche dal giorno 2.1.0-rc01. La versione 2.1.0 contiene questi commit.

Modifiche importanti dalla versione 2.0.1

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

Versione 2.1.0-rc01

8 gennaio 2020

Viene rilasciato androidx.sqlite:sqlite-*:2.1.0-rc01. 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 rilasciate senza modifiche dal giorno 2.1.0-alpha01. La versione 2.1.0-beta01 contiene questi commit.

Versione 2.1.0-alpha01

7 novembre 2019

Vengono rilasciate le funzionalità androidx.sqlite:sqlite:2.1.0-alpha01, androidx.sqlite:sqlite-framework:2.1.0-alpha01 e androidx.sqlite:sqlite-ktx:2.1.0-alpha01. 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

La versione 2.0.1 del gruppo di elementi androidx.sqlite viene rilasciata con due correzioni di bug.

Correzioni di bug

  • Sono stati risolti due problemi per cui FrameworkSQLiteOpenHelper non veniva recuperato correttamente da un database danneggiato o da una migrazione errata durante l'inizializzazione. (b/111504749 e b/111519144)