Sqlite
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 | Versione alpha |
---|---|---|---|---|
11 dicembre 2024 | 2.4.0 | - | - | 2.5.0-alpha12 |
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.
Per ulteriori informazioni, consulta la documentazione del Monitoraggio problemi.
Versione 2.5
Versione 2.5.0-alpha12
11 dicembre 2024
androidx.sqlite:sqlite-*:2.5.0-alpha12
viene rilasciato. La versione 2.5.0-alpha12 contiene questi commit.
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
androidx.sqlite:sqlite-*:2.5.0-alpha10
viene rilasciato. La versione 2.5.0-alpha10 contiene questi commit.
Modifiche all'API
- Aggiungi
SQLiteStatement.getColumnType()
insieme alle varie costanti di risultatoSQLITE_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 all'API
SQLiteKt
è stato rinominato inSQLite
eBundledSQLiteKt
inBundledSQLite
. (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()
aBundledSQLiteDriver
per passare i flag di apertura quando si apre una connessione al database. Utile per aprire un database in modalità di sola lettura o per utilizzare la modalità sicura per i thread serializzati anziché la modalità multithread con cui è compilato SQLite (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 rispetto alla 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 pacchettoandriodx.sqlite
contiene tre interfacce che definiscono le API SQLite di basso livello:SQLiteDriver
,SQLiteConnection
eSQLiteStatement
. L'artifactandroidx.sqlite:sqlite-framework
offre l'implementazione delle interfacce per Android e iOS in modo nativo, mentreandroidx.sqlite:sqlite-bundled
offre un'implementazione che utilizzaSQLite
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 inSupportSQLiteQueryBuilder
. (5df8698)
Versione 2.3.1
Versione 2.3.1
22 marzo 2023
androidx.sqlite:sqlite:2.3.1
, androidx.sqlite:sqlite-framework:2.3.1
e androidx.sqlite:sqlite-ktx:2.3.1
vengono rilasciati. 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
SupportSQLiteLock
, pertanto è necessario gestire in modo corretto un file null. (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à del codice sorgente se le sorgenti 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 l'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 passano gli argomenti di query da invariabili (
Array<Any?>
) a controvarianti (Array<out Any?>
) per adattarli al comportamento degli 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 di getter sono diventate proprietà:
- In
SupportSQLiteDatabase
: attachedDbs
isDatabaseIntegrityOk
isDbLockedByCurrentThread
isOpen
isReadOnly
isWriteAheadLoggingEnabled
maximumSize
pageSize
path
version
- In
SupportSQLiteOpenHelper
: databaseName
readableDatabase
writableDatabase
- In
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
- Nullabilità aggiornata (I29fbd)
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 diandroidx.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 all'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 multi-processo a livello di FrameworkSQLite*, per proteggere la creazione e le migrazioni del database multi-processo la prima volta. (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
androidx.sqlite:sqlite:2.2.0-alpha02
, androidx.sqlite:sqlite-framework:2.2.0-alpha02
e androidx.sqlite:sqlite-ktx:2.2.0-alpha02
vengono rilasciati. 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
androidx.sqlite:sqlite:2.2.0-alpha01
, androidx.sqlite:sqlite-framework:2.2.0-alpha01
e androidx.sqlite:sqlite-ktx:2.2.0-alpha01
vengono rilasciati. 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 utilizzaSupportSQLiteOpenHelper
.
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 all'API
- È stata aggiunta una nuova proprietà a
SupportSQLiteOpenHelper.Configuration
denominatauseNoBackupDirectory
per indicare che deve essere creato e individuato un database basato su file 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 per cui
FrameworkSQLiteOpenHelper
non riusciva a recuperare correttamente da un database danneggiato o da una migrazione non corretta durante l'inizializzazione. (b/111504749 e b/111519144)