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
16 juillet 2025 2.5.2 - - 2.6.0-alpha01

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.5.2"

    // 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.5.2"

    // 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.6

Version 2.6.0-alpha01

16 juillet 2025

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

Nouvelles fonctionnalités

Modifications apportées à l'API

  • Ajout d'une API permettant de vérifier si un SQLiteConnection comporte une transaction active. Étant donné que les transactions SQLite ne sont pas imbriquées, cette API peut aider les applications à déterminer si elles doivent utiliser BEGIN / COMMIT ou SAVEPOINT / RELEASE. (I5bf5e, b/319627988)
  • Ajoutez une API à SQLiteDriver pour indiquer si elle dispose ou non d'un pool de connexions en interne. (I52a51, b/408010324)

Version 2.5

Version 2.5.2

18 juin 2025

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

Correction de bugs

  • Ajout des règles R8 / Proguard manquantes pour empêcher l'obscurcissement des fonctions JNI / externes. (b/421626199)
  • Correction d'un bug qui entraînait l'exécution des instructions SQL avec des commentaires en tête comme s'il s'agissait de requêtes non lues. (b/413061402)

Version 2.5.1

7 mai 2025

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

Modifications apportées à l'API

  • Autorisez androidx.sqlite:sqlite-bundled à charger son composant natif à partir d'un chemin d'accès spécifié via la propriété système nommée androidx.sqlite.driver.bundled.path. b/381282544

Version 2.5.0

9 avril 2025

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

Modifications importantes depuis la version 2.4.0

  • Compatibilité avec Kotlin Multiplatform (KMP) : avec la sortie de Room KMP version 2.7.0, les API SQLite qui permettent à 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 propose une implémentation native des interfaces pour Android et iOS, tandis que androidx.sqlite:sqlite-bundled propose une implémentation qui utilise SQLite compilé à partir de la source (également appelé "SQLite fourni"). Pour en savoir plus sur l'API du pilote SQLite, consultez la documentation officielle SQLite KMP.

Version 2.5.0-rc03

26 mars 2025

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

Correction de bugs

  • Rétablissement d'un changement incompatible qui a supprimé à tort les API SupportSQLiteCompat utilisées par d'autres bibliothèques telles que Room (b/402796648).

Version 2.5.0-rc02

12 mars 2025

Publication d'androidx.sqlite:sqlite-*:2.5.0-rc02 sans modification notable par rapport à la dernière version. La version 2.5.0-rc02 contient ces commits.

Version 2.5.0-rc01

26 février 2025

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

Correction de bugs

  • Correction des métadonnées Gradle des artefacts androidx.sqlite pour JVM, qui entraînaient la résolution de la variante Android par les projets JVM et conduisaient à NoClassDefFoundError: androidx/sqlite/SQLiteDriver (b/396148592 et b/396184120).

Version 2.5.0-beta01

12 février 2025

Publication d'androidx.sqlite:sqlite-*:2.5.0-beta01 sans modification notable par rapport à la dernière version alpha. La version 2.5.0-beta01 contient ces commits.

Version 2.5.0-alpha13

29 janvier 2025

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

Modifications apportées à l'API

  • Supprimez androidx.sqlite.use, qui est désormais remplacé par AutoCloseable.use de Kotlin dans la bibliothèque standard. (I470f0, b/315461431)
  • La bibliothèque est désormais compilée avec Kotlin 2.0 et nécessitera au moins la version 2.0 dans les projets pour être utilisée. (I8efb0, b/315461431, b/384600605)

Correction de bugs

  • Déplacez le chargement de la bibliothèque native de BundledSQLiteDriver pour qu'il soit différé et lorsque la première connexion est ouverte pour éviter d'effectuer des E/S dans le thread principal. (I78e92, b/363985585)

Version 2.5.0-alpha12

11 décembre 2024

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

Version 2.5.0-alpha11

30 octobre 2024

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

Version 2.5.0-alpha10

16 octobre 2024

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

Modifications apportées à l'API

  • Ajoutez SQLiteStatement.getColumnType() ainsi que les différentes constantes de résultat SQLITE_DATA_* pour pouvoir récupérer le type de données d'une colonne. (I1985c, b/369636251)

Version 2.5.0-alpha09

2 octobre 2024

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

Version 2.5.0-alpha08

18 septembre 2024

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

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 compatibilité avec Linux ARM 64 dans les cibles JVM / Desktop. (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 Kotlin Multiplatform 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 à une base de données. Utile pour ouvrir une base de données en mode lecture seule ou utiliser le mode thread-safe sérialisé 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 fourni qui entraînait l'affichage de UnsatisfiedLinkError en raison de l'absence de symboles atomiques dans les appareils Android avec 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.

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, qui entraînait l'insertion du caractère de fin C null dans les bases de données créées avec cet outil. (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 Kotlin Multi-Platform (KMP) : avec la sortie de Room 2.7.0-alpha01, qui est la première version de Room KMP, les API SQLite qui permettent à 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 propose une implémentation des 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 groupé"). Pour en savoir plus sur l'API du pilote SQLite, consultez la documentation officielle de SQLite KMP.

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 bugs ont été corrigés.

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 qui empêchait l'invalidation des requêtes SQL après une modification du schéma lors des migrations. FrameworkSupportSQLiteOpenHelper va maintenant définir le cache d'instructions SQL minimal pendant les migrations pour éviter le problème. (0ad2a8f)
  • Correction d'un problème qui pouvait empêcher l'utilisation du répertoire de cache pour SupportSQLiteLock. Un fichier nul doit 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)