SQLite

La bibliothèque androidx.sqlite contient des interfaces abstraites ainsi que des implémentations de base permettant de créer vos propres bibliothèques utilisant SQLite.

Vous pouvez envisager d'utiliser la bibliothèque Room, qui fournit une couche d'abstraction sur SQLite, permettant un accès plus robuste à la base de données tout en exploitant toute la puissance de SQLite.

Dernière mise à jour Version stable Version finale Version bêta Version alpha
21 août 2024 2.4.0 - - 2.5.0-alpha07

Déclarer des dépendances

Pour ajouter une dépendance sur SQLite, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.

Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle de votre application ou de votre module :

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

Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.

Commentaires

Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.

Signaler un nouveau problème

Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.

Version 2.5

Version 2.5.0-alpha07

21 août 2024

Publication d'androidx.sqlite:sqlite-*:2.5.0-alpha07. La version 2.5.0-alpha07 contient ces commits.

Nouvelles fonctionnalités

  • Ajout de la prise en charge de Linux ARM 64 dans les cibles JVM / ordinateur. (b/358045505).

Version 2.5.0-alpha06

7 août 2024

Publication d'androidx.sqlite:sqlite-*:2.5.0-alpha06. La version 2.5.0-alpha06 contient ces commits.

Nouvelles fonctionnalités

  • Ajout de la prise en charge de la cible multiplateforme Kotlin linuxArm64. (I139d3, b/338268719)

Version 2.5.0-alpha05

10 juillet 2024

Publication d'androidx.sqlite:sqlite-*:2.5.0-alpha05. La version 2.5.0-alpha05 contient ces commits.

Modifications apportées à l'API

  • Remplacement du nom SQLiteKt par SQLite et du nom BundledSQLiteKt par BundledSQLite. (I8b501).

Version 2.5.0-alpha04

12 juin 2024

Publication d'androidx.sqlite:sqlite-*:2.5.0-alpha04. La version 2.5.0-alpha04 contient ces commits.

Modifications apportées à l'API

  • Ajout d'une API de surcharge open() à BundledSQLiteDriver pour transmettre des indicateurs ouverts lors de l'ouverture d'une connexion de base de données. Utile pour ouvrir une base de données en mode lecture seule ou utiliser le mode sans échec des threads sérialisés au lieu du mode multithread avec lequel SQLite est compilé (b/340949940).

Correction de bugs

  • Correction d'un problème d'association dans le pilote SQLite groupé qui entraînait la génération de UnsatisfiedLinkError en raison de l'absence de symboles atomiques sur les appareils Android équipés d'un ARM32. (b/341639198).
  • Correction d'un problème dans les pilotes où la liaison d'un tableau d'octets de longueur nulle dans une colonne entraînait une valeur nulle lors de la lecture de ce tableau.

Version 2.5.0-alpha03

29 mai 2024

Publication d'androidx.sqlite:sqlite-*:2.5.0-alpha03. La version 2.5.0-alpha03 contient ces commits.

Correction de bugs

  • Correction d'un problème lié à BundledSQLiteDriver, où les bases de données créées avec celui-ci contenaient le caractère de fin de nullité C. (b/340822359).

Version 2.5.0-alpha02

14 mai 2024

Publication d'androidx.sqlite:sqlite-*:2.5.0-alpha02 sans aucune modification importante par rapport à la version 2.5.0-alpha01 . La version 2.5.0-alpha02 contient ces commits.

Version 2.5.0-alpha01

1er mai 2024

Publication d'androidx.sqlite:sqlite-*:2.5.0-alpha01. La version 2.5.0-alpha01 contient ces commits.

Nouvelles fonctionnalités

  • Compatibilité avec les KMP (Kotlin Multi-Platform): avec la version 2.7.0-alpha01 de Room, qui est la première version du KMP Room, les API SQLite permettant à Room d'être KMP ont également été mises à jour. Le package andriodx.sqlite contient trois interfaces qui définissent les API SQLite de bas niveau: SQLiteDriver, SQLiteConnection et SQLiteStatement. L'artefact androidx.sqlite:sqlite-framework permet d'implémenter les interfaces pour Android et iOS de manière native, tandis que androidx.sqlite:sqlite-bundled propose une implémentation qui utilise SQLite compilé à partir de la source (également appelé "SQLite intégrée"). Pour en savoir plus sur l'API SQLite Driver, consultez la documentation officielle de KMP SQLite.

Version 2.4

Version 2.4.0

18 octobre 2023

Publication d'androidx.sqlite:sqlite:2.4.0, androidx.sqlite:sqlite-framework:2.4.0 et androidx.sqlite:sqlite-ktx:2.4.0. Liste des commits de la version 2.4.0

Changements importants depuis la version 2.3.0

  • Plusieurs corrections de bugs ont été ajoutées.

Version 2.4.0-rc01

20 septembre 2023

Publication d'androidx.sqlite:sqlite:2.4.0-rc01, androidx.sqlite:sqlite-framework:2.4.0-rc01 et androidx.sqlite:sqlite-ktx:2.4.0-rc01. Liste des commits de la version 2.4.0-rc01

Version 2.4.0-beta01

23 août 2023

Publication d'androidx.sqlite:sqlite:2.4.0-beta01, androidx.sqlite:sqlite-framework:2.4.0-beta01 et androidx.sqlite:sqlite-ktx:2.4.0-beta01. Liste des commits de la version 2.4.0-beta01

Version 2.4.0-alpha03

9 août 2023

Publication d'androidx.sqlite:sqlite:2.4.0-alpha03, androidx.sqlite:sqlite-framework:2.4.0-alpha03 et androidx.sqlite:sqlite-ktx:2.4.0-alpha03. Liste des commits de la version 2.4.0-alpha03

Version 2.4.0-alpha02

21 juin 2023

Publication d'androidx.sqlite:sqlite:2.4.0-alpha02, d'androidx.sqlite:sqlite-framework:2.4.0-alpha02 et d'androidx.sqlite:sqlite-ktx:2.4.0-alpha02 sans aucune modification. Liste des commits de la version 2.4.0-alpha02

Version 2.4.0-alpha01

22 mars 2023

Publication d'androidx.sqlite:sqlite:2.4.0-alpha01, androidx.sqlite:sqlite-framework:2.4.0-alpha01 et androidx.sqlite:sqlite-ktx:2.4.0-alpha01. Liste des commits de la version 2.4.0-alpha01

Correction de bugs

  • Correction d'une NullPointerException qui pouvait se produire dans SupportSQLiteQueryBuilder. (5df8698).

Version 2.3.1

Version 2.3.1

22 mars 2023

Publication d'androidx.sqlite:sqlite:2.3.1, androidx.sqlite:sqlite-framework:2.3.1 et androidx.sqlite:sqlite-ktx:2.3.1. Liste des commits de la version 2.3.1

Correction de bugs

  • Évitez un problème de framework dans lequel les requêtes SQL n'étaient pas invalidées après une modification de schéma lors des migrations. Pour éviter le problème, FrameworkSupportSQLiteOpenHelper définit désormais le cache minimal des instructions SQL lors des migrations. (0ad2a8f).
  • Correction d'un problème qui empêchait le répertoire de cache d'être utilisé pour SupportSQLiteLock. Un fichier nul devait donc être géré correctement. (9d177dc).
  • Correction d'un problème qui empêchait attachedDbs de renvoyer la liste complète des bases de données associées. (5f008e1).

Version 2.3.0

Version 2.3.0

11 janvier 2023

Publication d'androidx.sqlite:sqlite:2.3.0, androidx.sqlite:sqlite-framework:2.3.0 et androidx.sqlite:sqlite-ktx:2.3.0. Liste des commits de la version 2.3.0

Changements importants depuis la version 2.2.0

  • Le groupe de bibliothèques androidx.sqlite a été converti de Java en Kotlin. Des annotations de possibilité de valeur nulle sont manquantes pour androidx.sqlite. Vous risquez de rencontrer des erreurs d'incompatibilité des sources si celles-ci sont en Kotlin et que le code infère une valeur nulle incorrecte. De plus, certaines méthodes getter ont été converties en propriétés nécessitant la syntaxe d'accès aux propriétés sur les fichiers Kotlin. Veuillez signaler un bug en cas d'incompatibilités majeures. (b/240707042)
  • Ajout d'une API à la configuration SupportSQLite's pour permettre la perte de données pendant le mécanisme de récupération. (I1b830, b/215592732)
  • Ajout d'API pour le verrouillage et l'utilisation de plusieurs processus au niveau de FrameworkSQLite*, afin de protéger les premières migrations et créations multiprocessus de bases de données. (Ied267, b/193182592)

Version 2.3.0-rc01

7 décembre 2022

Publication d'androidx.sqlite:sqlite:2.3.0-rc01, androidx.sqlite:sqlite-framework:2.3.0-rc01 et androidx.sqlite:sqlite-ktx:2.3.0-rc01. Liste des commits de la version 2.3.0-rc01

Correction de bugs

  • Résolution de l'exception NPE dans SupportSQLiteQueryBuilder pour les colonnes pouvant avoir une valeur nulle. (Ica8f5)

Version 2.3.0-beta02

9 novembre 2022

Publication d'androidx.sqlite:sqlite:2.3.0-beta02, androidx.sqlite:sqlite-framework:2.3.0-beta02 et androidx.sqlite:sqlite-ktx:2.3.0-beta02. Liste des commits de la version 2.3.0-beta02

  • Correction de diverses API qui convertissent des arguments de requête invariants (Array<Any?>) en contravariants (Array<out Any?>) pour qu'ils correspondent au comportement du tableau Java. (b/253531073)

Version 2.3.0-beta01

5 octobre 2022

Publication d'androidx.sqlite:sqlite:2.3.0-beta01, androidx.sqlite:sqlite-framework:2.3.0-beta01 et androidx.sqlite:sqlite-ktx:2.3.0-beta01. Liste des commits de la version 2.3.0-beta01

Modifications apportées à l'API

  • Toutes les sources android.sqlite sont passées de Java en Kotlin. b/240707042
  • Un changement notable concernant la conversion est que les fonctions getter suivantes sont devenues des propriétés :
    • Dans SupportSQLiteDatabase :
    • attachedDbs
    • isDatabaseIntegrityOk
    • isDbLockedByCurrentThread
    • isOpen
    • isReadOnly
    • isWriteAheadLoggingEnabled
    • maximumSize
    • pageSize
    • path
    • version
    • Dans SupportSQLiteOpenHelper :
    • databaseName
    • readableDatabase
    • writableDatabase

Version 2.3.0-alpha05

24 août 2022

Publication d'androidx.sqlite:sqlite:2.3.0-alpha05, androidx.sqlite:sqlite-framework:2.3.0-alpha05 et androidx.sqlite:sqlite-ktx:2.3.0-alpha05. Liste des commits de la version 2.3.0-alpha05

Modifications apportées à l'API

  • Le groupe de bibliothèques androidx.sqlite a été converti de Java en Kotlin. Des annotations de possibilité de valeur nulle sont manquantes pour androidx.sqlite. Vous risquez de rencontrer des erreurs d'incompatibilité des sources si celles-ci sont en Kotlin et que le code infère une valeur nulle incorrecte. Veuillez signaler un bug en cas d'incompatibilité majeure. (b/240707042)

Version 2.3.0-alpha04

10 août 2022

Publication d'androidx.sqlite:sqlite:2.3.0-alpha04, androidx.sqlite:sqlite-framework:2.3.0-alpha04 et androidx.sqlite:sqlite-ktx:2.3.0-alpha04. Liste des commits de la version 2.3.0-alpha04

Modifications apportées à l'API

  • Mise à jour de la possibilité de valeur nulle. (I29fbd)

Version 2.3.0-alpha03

1er juin 2022

Publication d'androidx.sqlite:sqlite:2.3.0-alpha03, androidx.sqlite:sqlite-framework:2.3.0-alpha03 et androidx.sqlite:sqlite-ktx:2.3.0-alpha03. Liste des commits de la version 2.3.0-alpha03

Modifications apportées à l'API

  • Limitation de androidx.sqlite.ProcessLock. Cette API est limitée à la fonction qu'elle occupe dans androidx.sqlite et ne doit pas être utilisée en tant que processus classique pour verrouiller plusieurs processus. (I1643f)

Version 2.3.0-alpha02

6 avril 2022

Publication d'androidx.sqlite:sqlite:2.3.0-alpha02, androidx.sqlite:sqlite-framework:2.3.0-alpha02 et androidx.sqlite:sqlite-ktx:2.3.0-alpha02. Liste des commits de la version 2.3.0-alpha02

  • Aucune modification importante depuis la version 2.3.0-alpha01

Version 2.3.0-alpha01

23 février 2022

Publication d'androidx.sqlite:sqlite:2.3.0-alpha01, androidx.sqlite:sqlite-framework:2.3.0-alpha01 et androidx.sqlite:sqlite-ktx:2.3.0-alpha01. Liste des commits de la version 2.3.0-alpha01

Modifications apportées à l'API

  • Ajout d'une API à la configuration de SupportSQLite pour permettre la perte de données pendant le mécanisme de récupération. (I1b830, b/215592732)
  • Ajout d'API pour le verrouillage et l'utilisation de plusieurs processus au niveau de FrameworkSQLite*, afin de protéger les premières migrations et créations multiprocessus de bases de données. (Ied267, b/193182592)

Version 2.2.0

Version 2.2.0

15 décembre 2021

Publication d'androidx.sqlite:sqlite:2.2.0, androidx.sqlite:sqlite-framework:2.2.0 et androidx.sqlite:sqlite-ktx:2.2.0. Liste des commits de la version 2.2.0

Changements importants depuis la version 2.1.0

Ajout de la méthode par défaut pour execPerConnectionSQL() dans SupportSQLiteDatabase.

Version 2.2.0-rc01

1er décembre 2021

Publication d'androidx.sqlite:sqlite:2.2.0-rc01, androidx.sqlite:sqlite-framework:2.2.0-rc01 et androidx.sqlite:sqlite-ktx:2.2.0-rc01. Liste des commits de la version 2.2.0-rc01

Aucune modification importante depuis la version 2.2.0-beta01.

Version 2.2.0-beta01

13 octobre 2021

Publication d'androidx.sqlite:sqlite:2.2.0-beta01, androidx.sqlite:sqlite-framework:2.2.0-beta01 et androidx.sqlite:sqlite-ktx:2.2.0-beta01. Liste des commits de la version 2.2.0-beta01

  • Aucune modification par rapport à la version alpha précédente.

Version 2.2.0-alpha02

21 juillet 2021

Publication d'androidx.sqlite:sqlite:2.2.0-alpha02, androidx.sqlite:sqlite-framework:2.2.0-alpha02 et androidx.sqlite:sqlite-ktx:2.2.0-alpha02. Liste des commits de la version 2.2.0-alpha02

Aucune modification importante par rapport à la version 2.2.0-alpha01. Cette version a été publiée afin de s'adapter les changements de la version 2.4.0-alpha04 de Room.

Version 2.2.0-alpha01

16 juin 2021

Publication d'androidx.sqlite:sqlite:2.2.0-alpha01, androidx.sqlite:sqlite-framework:2.2.0-alpha01 et androidx.sqlite:sqlite-ktx:2.2.0-alpha01. Liste des commits de la version 2.2.0-alpha01.

Modifications apportées à l'API

  • Ajout de la méthode par défaut pour execPerConnectionSQL() dans SupportSQLiteDatabase (I86326, b/172270145).

Version 2.1.0

Version 2.1.0

22 janvier 2020

Publication d'androidx.sqlite:sqlite:2.1.0, androidx.sqlite:sqlite-framework:2.1.0 et androidx.sqlite:sqlite-ktx:2.1.0 sans modification par rapport à la version 2.1.0-rc01. Liste des commits de la version 2.1.0

Modifications importantes depuis la version 2.0.1

  • Compatibilité avec useNoBackupDirectory, qui peut être utilisée pour indiquer que la base de données doit être créée dans le répertoire sans sauvegarde si vous utilisez SupportSQLiteOpenHelper.

Version 2.1.0-rc01

8 janvier 2020

Publication d'androidx.sqlite:sqlite-*:2.1.0-rc01. Liste des commits de la version 2.1.0-rc01.

Cette version est identique à la version 2.1.0-beta01.

Version 2.1.0-beta01

4 décembre 2019

Publication d'androidx.sqlite:sqlite:2.1.0-beta01, androidx.sqlite:sqlite-framework:2.1.0-beta01 et androidx.sqlite:sqlite-ktx:2.1.0-beta01 sans modification par rapport à la version 2.1.0-alpha01. Liste des commits de la version 2.1.0-beta01.

Version 2.1.0-alpha01

7 novembre 2019

Publication d'androidx.sqlite:sqlite:2.1.0-alpha01, androidx.sqlite:sqlite-framework:2.1.0-alpha01 et androidx.sqlite:sqlite-ktx:2.1.0-alpha01. Liste des commits de la version 2.1.0-alpha01

Modifications apportées à l'API

  • Ajout d'une propriété à SupportSQLiteOpenHelper.Configuration appelée useNoBackupDirectory pour indiquer qu'une base de données basée sur des fichiers doit être créée et localisée à partir du répertoire sans sauvegarde.

Version 2.0.1

Version 2.0.1

13 mars 2019

La version 2.0.1 du groupe d'artefacts androidx.sqlite est publiée avec deux corrections de bugs.

Correction de bugs

  • Correction de deux problèmes entraînant une mauvaise récupération de FrameworkSQLiteOpenHelper à partir d'une base de données corrompue ou d'une migration incorrecte lors de l'initialisation. (b/111504749 and b/111519144)