Sqlite

La biblioteca androidx.sqlite contiene interfaces abstractas junto con implementaciones básicas que se pueden usar para compilar tus propias bibliotecas que acceden a SQLite.

Te recomendamos que uses la biblioteca de Room, que brinda una capa de abstracción para SQLite que permite acceder a la base de datos sin problemas y, al mismo tiempo, aprovecha toda la potencia de SQLite.

Actualización más reciente Versión estable Versión potencial Versión beta Versión alfa
30 de octubre de 2024 2.4.0 - - 2.5.0-alpha11

Cómo declarar dependencias

Para agregar una dependencia en SQLite, debes agregar el repositorio de Maven de Google a tu proyecto. Consulta el repositorio de Maven de Google para obtener más información.

Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o módulo:

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

Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.

Comentarios

Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.

Crear un error nuevo

Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.

Versión 2.5

Versión 2.5.0-alpha11

30 de octubre de 2024

Lanzamiento de androidx.sqlite:sqlite-*:2.5.0-alpha11. La versión 2.5.0-alpha11 contiene estas confirmaciones.

Versión 2.5.0-alpha10

16 de octubre de 2024

Lanzamiento de androidx.sqlite:sqlite-*:2.5.0-alpha10. La versión 2.5.0-alpha10 contiene estas confirmaciones.

Cambios en la API

  • Agrega SQLiteStatement.getColumnType() junto con las diversas constantes de resultados SQLITE_DATA_* para permitir la recuperación del tipo de datos de una columna. (I1985c, b/369636251).

Versión 2.5.0-alpha09

2 de octubre de 2024

Lanzamiento de androidx.sqlite:sqlite-*:2.5.0-alpha09. La versión 2.5.0-alpha09 contiene estas confirmaciones.

Versión 2.5.0-alpha08

18 de septiembre de 2024

Lanzamiento de androidx.sqlite:sqlite-*:2.5.0-alpha08. La versión 2.5.0-alpha08 contiene estas confirmaciones.

Versión 2.5.0-alpha07

21 de agosto de 2024

Lanzamiento de androidx.sqlite:sqlite-*:2.5.0-alpha07. La versión 2.5.0-alpha07 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó compatibilidad con Linux ARM 64 en los objetivos de JVM o de escritorio. (b/358045505).

Versión 2.5.0-alpha06

7 de agosto de 2024

Lanzamiento de androidx.sqlite:sqlite-*:2.5.0-alpha06. La versión 2.5.0-alpha06 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó compatibilidad con el destino multiplataforma de Kotlin linuxArm64 (I139d3, b/338268719).

Versión 2.5.0-alpha05

10 de julio de 2024

Lanzamiento de androidx.sqlite:sqlite-*:2.5.0-alpha05. La versión 2.5.0-alpha05 contiene estas confirmaciones.

Cambios en la API

  • Se cambió el nombre de SQLiteKt por SQLite y el de BundledSQLiteKt por BundledSQLite (I8b501).

Versión 2.5.0-alpha04

12 de junio de 2024

Lanzamiento de androidx.sqlite:sqlite-*:2.5.0-alpha04. La versión 2.5.0-alpha04 contiene estas confirmaciones.

Cambios en la API

  • Se agregó una API de sobrecarga open() a BundledSQLiteDriver para pasar marcas de apertura cuando se abre una conexión de base de datos. Es útil para abrir una base de datos en modo de solo lectura o usar el modo seguro de subprocesos serializados en lugar del modo multisubproceso con el que se compila SQLite (b/340949940).

Correcciones de errores

  • Se corrigió un problema de vinculación en el controlador de SQLite incluido que causaba que se arrojara UnsatisfiedLinkError debido a la falta de símbolos atómicos en dispositivos Android con un ARM32. (b/341639198).
  • Se corrigió un problema en los controladores en el que la vinculación de un array de bytes de longitud cero en una columna generaba un valor nulo cuando se leía.

Versión 2.5.0-alpha03

29 de mayo de 2024

Lanzamiento de androidx.sqlite:sqlite-*:2.5.0-alpha03. La versión 2.5.0-alpha03 contiene estas confirmaciones.

Correcciones de errores

  • Se solucionó un problema con BundledSQLiteDriver en el que las bases de datos creadas con él contenían el carácter de terminador nulo C. (b/340822359).

Versión 2.5.0-alpha02

14 de mayo de 2024

Lanzamiento de androidx.sqlite:sqlite-*:2.5.0-alpha02 sin cambios significativos desde la versión 2.5.0-alpha01 . La versión 2.5.0-alpha02 contiene estas confirmaciones.

Versión 2.5.0-alpha01

1 de mayo de 2024

Lanzamiento de androidx.sqlite:sqlite-*:2.5.0-alpha01. La versión 2.5.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • Compatibilidad con varias plataformas (KMP) de Kotlin: Con el lanzamiento de Room 2.7.0-alpha01, que es la primera versión de Room KMP, también se actualizaron las APIs de SQLite que permiten que Room sea KMP. El paquete andriodx.sqlite contiene tres interfaces que definen las APIs de SQLite de bajo nivel: SQLiteDriver, SQLiteConnection y SQLiteStatement. El artefacto androidx.sqlite:sqlite-framework ofrece la implementación de las interfaces para Android y iOS de forma nativa, mientras que androidx.sqlite:sqlite-bundled ofrece una implementación que usa SQLite compilado desde la fuente (también conocido como "SQLite empaquetado"). Para obtener más información sobre la API de SQLite Driver, consulta la documentación oficial de KMP de SQLite.

Versión 2.4

Versión 2.4.0

18 de octubre de 2023

Lanzamiento de androidx.sqlite:sqlite:2.4.0, androidx.sqlite:sqlite-framework:2.4.0 y androidx.sqlite:sqlite-ktx:2.4.0. La versión 2.4.0 contiene estas confirmaciones.

Cambios importantes desde la versión 2.3.0

  • Se implementaron varias correcciones de errores.

Versión 2.4.0-rc01

20 de septiembre de 2023

Lanzamiento de androidx.sqlite:sqlite:2.4.0-rc01, androidx.sqlite:sqlite-framework:2.4.0-rc01 y androidx.sqlite:sqlite-ktx:2.4.0-rc01. La versión 2.4.0-rc01 contiene estas confirmaciones.

Versión 2.4.0-beta01

23 de agosto de 2023

Lanzamiento de androidx.sqlite:sqlite:2.4.0-beta01, androidx.sqlite:sqlite-framework:2.4.0-beta01 y androidx.sqlite:sqlite-ktx:2.4.0-beta01. La versión 2.4.0-beta01 contiene estas confirmaciones.

Versión 2.4.0-alpha03

9 de agosto de 2023

Lanzamiento de androidx.sqlite:sqlite:2.4.0-alpha03, androidx.sqlite:sqlite-framework:2.4.0-alpha03 y androidx.sqlite:sqlite-ktx:2.4.0-alpha03. La versión 2.4.0-alpha03 contiene estas confirmaciones.

Versión 2.4.0-alpha02

21 de junio de 2023

Lanzamiento de androidx.sqlite:sqlite:2.4.0-alpha02, androidx.sqlite:sqlite-framework:2.4.0-alpha02 y androidx.sqlite:sqlite-ktx:2.4.0-alpha02 sin cambios. La versión 2.4.0-alpha02 contiene estas confirmaciones.

Versión 2.4.0-alpha01

22 de marzo de 2023

Lanzamiento de androidx.sqlite:sqlite:2.4.0-alpha01, androidx.sqlite:sqlite-framework:2.4.0-alpha01 y androidx.sqlite:sqlite-ktx:2.4.0-alpha01. La versión 2.4.0-alpha01 contiene estas confirmaciones.

Correcciones de errores

  • Se corrigió una NullPointerException que podía ocurrir en SupportSQLiteQueryBuilder. (5df8698).

Versión 2.3.1

Versión 2.3.1

22 de marzo de 2023

Lanzamiento de androidx.sqlite:sqlite:2.3.1, androidx.sqlite:sqlite-framework:2.3.1 y androidx.sqlite:sqlite-ktx:2.3.1. La versión 2.3.1 contiene estas confirmaciones.

Correcciones de errores

  • Se evitó un problema del framework por el que las consultas de SQL no se invalidaban después de un cambio de esquema durante las migraciones. FrameworkSupportSQLiteOpenHelper ahora establecerá la caché mínima de instrucciones de SQL durante las migraciones para evitar el problema. (0ad2a8f).
  • Se solucionó un problema en el que es posible que el directorio de caché no esté disponible para SupportSQLiteLock, por lo que se debe controlar correctamente un archivo nulo. (9d177dc).
  • Se solucionó un problema por el que attachedDbs no mostraba la lista completa de bases de datos adjuntas. (5f008e1)

Versión 2.3.0

Versión 2.3.0

11 de enero de 2023

Se lanzaron androidx.sqlite:sqlite:2.3.0, androidx.sqlite:sqlite-framework:2.3.0 y androidx.sqlite:sqlite-ktx:2.3.0. La versión 2.3.0 contiene estas confirmaciones.

Cambios importantes desde la versión 2.2.0

  • Las fuentes del grupo de bibliotecas androidx.sqlite se convirtieron de Java a Kotlin. Ten en cuenta que, debido a que a androidx.sqlite le faltan algunas anotaciones de nulabilidad, es posible que experimentes errores de incompatibilidad de origen si tus fuentes están en Kotlin y el código infiere el valor de nulabilidad incorrecto. Además, algunos métodos get se convirtieron en propiedades que requieren la sintaxis de acceso a las propiedades en archivos Kotlin. Informa un error si hay alguna incompatibilidad significativa (b/240707042).
  • Se agregó una API en la configuración de SupportSQLite's para permitir la pérdida de datos durante el mecanismo de recuperación (I1b830, b/215592732).
  • Se agregó una API para el bloqueo y uso de varios procesos a nivel de FrameworkSQLite* para proteger la primera creación de bases de datos y migraciones de varios procesos (Ied267, b/193182592).

Versión 2.3.0-rc01

7 de diciembre de 2022

Se lanzaron androidx.sqlite:sqlite:2.3.0-rc01, androidx.sqlite:sqlite-framework:2.3.0-rc01 y androidx.sqlite:sqlite-ktx:2.3.0-rc01. La versión 2.3.0-rc01 contiene estas confirmaciones.

Correcciones de errores

  • Se resolvió el problema de NPE en SupportSQLiteQueryBuilder de las columnas anulables (Ica8f5).

Versión 2.3.0-beta02

9 de noviembre de 2022

Se lanzaron androidx.sqlite:sqlite:2.3.0-beta02, androidx.sqlite:sqlite-framework:2.3.0-beta02 y androidx.sqlite:sqlite-ktx:2.3.0-beta02. La versión 2.3.0-beta02 contiene estas confirmaciones.

  • Se corrigieron varias APIs que tomaban argumentos de consulta de invariantes (Array<Any?>) a contravariantes (Array<out Any?>) para que coincidan con el comportamiento de conjunto de Java (b/253531073).

Versión 2.3.0-beta01

5 de octubre de 2022

Se lanzaron androidx.sqlite:sqlite:2.3.0-beta01, androidx.sqlite:sqlite-framework:2.3.0-beta01 y androidx.sqlite:sqlite-ktx:2.3.0-beta01. La versión 2.3.0-beta01 contiene estas confirmaciones.

Cambios en la API

  • Todas las fuentes de android.sqlite se convirtieron de Java a Kotlin. b/240707042
  • Un cambio notable de la conversión es que las siguientes funciones de método get se convirtieron en propiedades:
    • En SupportSQLiteDatabase:
    • attachedDbs
    • isDatabaseIntegrityOk
    • isDbLockedByCurrentThread
    • isOpen
    • isReadOnly
    • isWriteAheadLoggingEnabled
    • maximumSize
    • pageSize
    • path
    • version
    • En SupportSQLiteOpenHelper:
    • databaseName
    • readableDatabase
    • writableDatabase

Versión 2.3.0-alpha05

24 de agosto de 2022

Se lanzaron androidx.sqlite:sqlite:2.3.0-alpha05, androidx.sqlite:sqlite-framework:2.3.0-alpha05 y androidx.sqlite:sqlite-ktx:2.3.0-alpha05. La versión 2.3.0-alpha05 contiene estas confirmaciones.

Cambios en la API

  • Las fuentes del grupo de bibliotecas de androidx.sqlite se convirtieron de Java a Kotlin. Ten en cuenta que, debido a que a androidx.sqlite le faltan algunas anotaciones de nulabilidad, es posible que experimentes errores de incompatibilidad de origen si tus fuentes están en Kotlin y el código infiere el valor de nulabilidad incorrecto. Informa un error si hay alguna incompatibilidad significativa (b/240707042).

Versión 2.3.0-alpha04

10 de agosto de 2022

Se lanzaron androidx.sqlite:sqlite:2.3.0-alpha04, androidx.sqlite:sqlite-framework:2.3.0-alpha04 y androidx.sqlite:sqlite-ktx:2.3.0-alpha04. La versión 2.3.0-alpha04 contiene estas confirmaciones.

Cambios en la API

  • Se actualizó la nulabilidad (I29fbd).

Versión 2.3.0-alpha03

1 de junio de 2022

Se lanzaron androidx.sqlite:sqlite:2.3.0-alpha03, androidx.sqlite:sqlite-framework:2.3.0-alpha03 y androidx.sqlite:sqlite-ktx:2.3.0-alpha03. La versión 2.3.0-alpha03 contiene estas confirmaciones.

Cambios en la API

  • Se restringió androidx.sqlite.ProcessLock. La API se limita a su función dentro de androidx.sqlite y no se debe utilizar como un bloqueo de procesos múltiples de uso general (I1643f).

Versión 2.3.0-alpha02

6 de abril de 2022

Se lanzaron androidx.sqlite:sqlite:2.3.0-alpha02, androidx.sqlite:sqlite-framework:2.3.0-alpha02 y androidx.sqlite:sqlite-ktx:2.3.0-alpha02. La versión 2.3.0-alpha02 contiene estas confirmaciones.

  • No hay cambios significativos desde la versión 2.3.0-alpha01.

Versión 2.3.0-alpha01

23 de febrero de 2022

Se lanzaron androidx.sqlite:sqlite:2.3.0-alpha01, androidx.sqlite:sqlite-framework:2.3.0-alpha01 y androidx.sqlite:sqlite-ktx:2.3.0-alpha01. La versión 2.3.0-alpha01 contiene estas confirmaciones.

Cambios en la API

  • Se agregó una API a la configuración de SupportSQLite para permitir la pérdida de datos durante el mecanismo de recuperación (I1b830, b/215592732).
  • Se agregó una API para el bloqueo y el uso de varios procesos a nivel de FrameworkSQLite* para proteger la primera creación de bases de datos y migraciones de varios procesos (Ied267, b/193182592).

Versión 2.2.0

Versión 2.2.0

15 de diciembre de 2021

Lanzamiento de androidx.sqlite:sqlite:2.2.0, androidx.sqlite:sqlite-framework:2.2.0 y androidx.sqlite:sqlite-ktx:2.2.0. La versión 2.2.0 contiene estas confirmaciones.

Cambios importantes desde la versión 2.1.0

Se agregó el método predeterminado de execPerConnectionSQL() en SupportSQLiteDatabase.

Versión 2.2.0-rc01

1 de diciembre de 2021

Lanzamiento de androidx.sqlite:sqlite:2.2.0-rc01, androidx.sqlite:sqlite-framework:2.2.0-rc01 y androidx.sqlite:sqlite-ktx:2.2.0-rc01. La versión 2.2.0-rc01 contiene estas confirmaciones.

No hay cambios significativos desde la versión 2.2.0-beta01.

Versión 2.2.0-beta01

13 de octubre de 2021

Se lanzaron androidx.sqlite:sqlite:2.2.0-beta01, androidx.sqlite:sqlite-framework:2.2.0-beta01 y androidx.sqlite:sqlite-ktx:2.2.0-beta01. La versión 2.2.0-beta01 contiene estas confirmaciones.

  • No hay cambios desde la versión alfa anterior.

Versión 2.2.0-alpha02

21 de julio de 2021

Lanzamiento de androidx.sqlite:sqlite:2.2.0-alpha02, androidx.sqlite:sqlite-framework:2.2.0-alpha02 y androidx.sqlite:sqlite-ktx:2.2.0-alpha02. La versión 2.2.0-alpha02 contiene estas confirmaciones.

No hay cambios significativos desde la versión 2.2.0-alpha01. Esta versión solo se lanzó para alinearla con la de Room 2.4.0-alpha04.

Versión 2.2.0-alpha01

16 de junio de 2021

Lanzamiento de androidx.sqlite:sqlite:2.2.0-alpha01, androidx.sqlite:sqlite-framework:2.2.0-alpha01 y androidx.sqlite:sqlite-ktx:2.2.0-alpha01. La versión 2.2.0-alpha01 contiene estas confirmaciones.

Cambios en la API

  • Se agregó un método predeterminado para execPerConnectionSQL() en SupportSQLiteDatabase. (I86326, b/172270145)

Versión 2.1.0

Versión 2.1.0

22 de enero de 2020

Lanzamiento de androidx.sqlite:sqlite:2.1.0, androidx.sqlite:sqlite-framework:2.1.0 y androidx.sqlite:sqlite-ktx:2.1.0 sin modificaciones desde la versión 2.1.0-rc01. La versión 2.1.0 contiene estas confirmaciones.

Cambios importantes desde la versión 2.0.1

  • Se agregó compatibilidad con useNoBackupDirectory, que se puede usar para indicar que se debe crear la base de datos en el directorio sin copia de seguridad cuando se utiliza SupportSQLiteOpenHelper.

Versión 2.1.0-rc01

8 de enero de 2020

Lanzamiento de androidx.sqlite:sqlite-*:2.1.0-rc01. La versión 2.1.0-rc01 contiene estas confirmaciones.

Esta versión es idéntica a la 2.1.0-beta01.

Versión 2.1.0-beta01

4 de diciembre de 2019

Lanzamiento de androidx.sqlite:sqlite:2.1.0-beta01, androidx.sqlite:sqlite-framework:2.1.0-beta01 y androidx.sqlite:sqlite-ktx:2.1.0-beta01 sin modificaciones desde la versión 2.1.0-alpha01. La versión 2.1.0-beta01 contiene estas confirmaciones.

Versión 2.1.0-alpha01

7 de noviembre de 2019

Lanzamiento de androidx.sqlite:sqlite:2.1.0-alpha01, androidx.sqlite:sqlite-framework:2.1.0-alpha01 y androidx.sqlite:sqlite-ktx:2.1.0-alpha01. La versión 2.1.0-alpha01 contiene estas confirmaciones.

Cambios en la API

  • Se agregó una nueva propiedad a SupportSQLiteOpenHelper.Configuration, llamada useNoBackupDirectory, para indicar que se debe crear y ubicar una base de datos basada en archivos desde el directorio sin copia de seguridad.

Versión 2.0.1

Versión 2.0.1

13 de marzo de 2019

Lanzamiento de la versión 2.0.1 del grupo de artefactos con androidx.sqlite que incluye dos correcciones de errores.

Correcciones de errores

  • Se corrigieron dos errores en los que FrameworkSQLiteOpenHelper no se recuperaba correctamente de una base de datos dañada o una migración incorrecta durante la inicialización (b/111504749 y b/111519144).