Sqlite
androidx.sqlite
contiene interfacce astratte insieme ad 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 rispetto a SQLite per consentire un accesso al database più solido, sfruttando al contempo tutta la potenza di SQLite.
Aggiornamento più recente | Release stabile | Candidato per la release | Versione beta | Release alpha |
---|---|---|---|---|
12 giugno 2024 | 2.4.0 | - | - | 2.5.0-alpha04 |
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 ulteriori informazioni sulle dipendenze, vedi Aggiungere dipendenze build.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se rilevi nuovi problemi o hai idee per migliorare la libreria. Dai un'occhiata ai problemi esistenti in questa libreria prima di crearne una nuova. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per ulteriori informazioni, consulta la documentazione di Issue Tracker.
Versione 2.5
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 alle API
- È stata aggiunta un'API overload
open()
aBundledSQLiteDriver
per passare i flag aperti 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 seriali anziché la modalità multi-thread in cui viene compilato SQLite in bundle (b/340949940).
Correzioni di bug
- Risolto un problema di collegamento nel driver SQLite in bundle che causava la generazione di
UnsatisfiedLinkError
a causa della mancanza di simboli atomici nei dispositivi Android con ARM32. (b/341639198) - Risolto il problema dei driver per cui l'associazione di una matrice di byte di lunghezza zero a una colonna portava a un valore null 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
- Risolvi un problema relativo a
BundledSQLiteDriver
in cui i database creati con questo oggetto contengono il carattere di terminazione C null. (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 Kotlin Multi-Platform (KMP): con il rilascio della Room 2.7.0-alpha01, la prima release di Room KMP, sono state aggiornate anche le API
SQLite
che consentono la funzionalità KMP delle stanze. Il pacchettoandriodx.sqlite
contiene tre interfacce che definiscono le API SQLite di basso livello:SQLiteDriver
,SQLiteConnection
eSQLiteStatement
. L'elementoandroidx.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 dall'origine (noto anche come "SQLite in bundle"). Per ulteriori informazioni sull'API SQLite Driver, 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
- Evita un problema del framework per cui le query SQL non vengono invalidate dopo una modifica dello schema durante le migrazioni. Per evitare il problema,
FrameworkSupportSQLiteOpenHelper
ora imposterà la cache minima delle istruzioni SQL durante le migrazioni. (0ad2a8f) - Risolto il problema per cui la directory della cache potrebbe non essere disponibile per l'uso per
SupportSQLiteLock
, quindi un file null deve essere gestito correttamente. (9d177dc) - Risolto il 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é inandroidx.sqlite
mancano alcune annotazioni relative ai valori null, potresti riscontrare errori di incompatibilità delle fonti se le tue origini sono in Kotlin e il codice sta deducendo il valore di valori nullo errato. Inoltre, alcuni metodi getter sono stati convertiti in proprietà che richiedono la sintassi di accesso alla proprietà sui file Kotlin. Segnala un bug se sono presenti 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 multi-processo a livello di
FrameworkSQLite*
, per proteggere la creazione e le migrazioni dei database con più processi per la prima volta. (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 valore 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 utilizzano argomenti di query da invarianti (
Array<Any?>
) a contravarianti (Array<out Any?>
) per corrispondere al comportamento dell'array 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 alle API
- Tutte le origini android.sqlite sono state convertite da Java a Kotlin. b/240707042
- Un cambiamento notevole 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
- Tra
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 alle API
- Le origini del gruppo androidx.sqlite sono state convertite da Java a Kotlin. Tieni presente che, poiché androidx.sqlite aveva alcune annotazioni mancanti di nullabilità, potresti riscontrare errori di incompatibilità delle origini se le tue origini sono in Kotlin e il codice stava deducendo il valore nullo errato. Segnala un bug in caso di 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 alle API
- Valore nulla aggiornato (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 alle API
- Rendi
androidx.sqlite.ProcessLock
limitato. L'API ha un ambito e una sua funzione all'interno diandroidx.sqlite
e non deve essere utilizzata come blocco multiprocesso per uso 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 rispetto alla 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 multi-processo a livello di FrameworkSQLite*, per proteggere la creazione e le migrazioni dei database multi-processo per 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 un 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 dalla 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 allo svincolo stanza 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 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
- Il supporto di
useNoBackupDirectory
può essere utilizzato per indicare che il database deve essere creato in nessuna directory di 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 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
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
denominatauseNoBackupDirectory
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 artefatti androidx.sqlite
viene rilasciata con due correzioni di bug.
Correzioni di bug
- Risolti due problemi per cui
FrameworkSQLiteOpenHelper
non riusciva a recuperare correttamente da un database danneggiato o da una migrazione errata durante l'inizializzazione. (b/111504749 e b/111519144)