Sqlite

A biblioteca androidx.sqlite contém interfaces abstratas com implementações básicas que podem ser usadas para criar bibliotecas que acessam o SQLite.

É recomendado usar a biblioteca Room, que fornece uma camada de abstração para permitir um acesso mais robusto ao banco de dados, aproveitando toda a capacidade do SQLite.

Atualização mais recente Versão estável Versão candidata a lançamento Versão Beta Versão Alfa
21 de agosto de 2024 2.4.0 - - 2.5.0-alpha07

Declarar dependências

Para adicionar uma dependência ao SQLite, adicione o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para ver mais informações.

Adicione as dependências dos artefatos necessários ao arquivo build.gradle do seu app ou 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 mais informações sobre dependências, consulte Adicionar dependências de build.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão 2.5

Versão 2.5.0-alpha07

21 de agosto de 2024

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha07. A versão 2.5.0-alpha07 contém estas confirmações.

Novos recursos

  • Foi adicionado suporte para Linux ARM 64 nos destinos de JVM / Desktop. (b/358045505).

Versão 2.5.0-alpha06

7 de agosto de 2024

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha06. A versão 2.5.0-alpha06 contém estas confirmações.

Novos recursos

  • Foi adicionado suporte ao destino linuxArm64 do Kotlin Multiplatform (I139d3, b/338268719).

Versão 2.5.0-alpha05

10 de julho de 2024

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha05. A versão 2.5.0-alpha05 contém estas confirmações.

Mudanças na API

  • SQLiteKt foi renomeado como SQLite, e BundledSQLiteKt foi renomeado como BundledSQLite (I8b501).

Versão 2.5.0-alpha04

12 de junho de 2024

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha04. A versão 2.5.0-alpha04 contém estas confirmações.

Mudanças na API

  • Foi adicionada uma API de sobrecarga open() a BundledSQLiteDriver para transmitir sinalizações abertas ao abrir uma conexão de banco de dados. Útil para abrir um banco de dados no modo somente leitura ou usar o modo de segurança de linha de execução serializada em vez do modo de várias linhas de execução agrupado com o SQLite que é compilado (b/340949940).

Correções de bugs

  • Foi corrigido um problema de vinculação no driver SQLite empacotado que fazia com que UnsatisfiedLinkError fosse gerada devido à ausência de símbolos atômicos em dispositivos Android com um ARM32 (b/341639198).
  • Foi corrigido um problema nos drivers em que a vinculação de uma matriz de bytes de comprimento zero a uma coluna gerava um valor nulo durante a leitura dela.

Versão 2.5.0-alpha03

29 de maio de 2024

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha03. A versão 2.5.0-alpha03 contém estas confirmações.

Correções de bugs

  • Foi corrigido um problema com o BundledSQLiteDriver em que os bancos de dados criados com ele conteriam o caractere de terminador nulo C. (b/340822359).

Versão 2.5.0-alpha02

14 de maio de 2024

Lançamento do androidx.sqlite:sqlite-*:2.5.0-alpha02 sem mudanças significativas desde a versão 2.5.0-alpha01 . A versão 2.5.0-alpha02 contém estas confirmações.

Versão 2.5.0-alpha01

1o de maio de 2024

Lançamento de androidx.sqlite:sqlite-*:2.5.0-alpha01. A versão 2.5.0-alpha01 contém estas confirmações.

Novos recursos

  • Suporte a várias plataformas (KMP) do Kotlin: com o lançamento do Room 2.7.0-alpha01, que é a primeira versão do Room KMP, as APIs SQLite que permitem que o Room use o KMP também foram atualizadas. O pacote andriodx.sqlite contém três interfaces que definem APIs SQLite de baixo nível: SQLiteDriver, SQLiteConnection e SQLiteStatement. O artefato androidx.sqlite:sqlite-framework oferece implementação nativa das interfaces para Android e iOS, enquanto androidx.sqlite:sqlite-bundled oferece uma implementação que usa SQLite compilado da origem (também conhecido como "SQLite em pacote"). Para mais informações sobre a API SQLite Driver, consulte a documentação oficial do KMP do SQLite.

Versão 2.4

Versão 2.4.0

18 de outubro de 2023

Lançamento de androidx.sqlite:sqlite:2.4.0, androidx.sqlite:sqlite-framework:2.4.0 e androidx.sqlite:sqlite-ktx:2.4.0. A versão 2.4.0 contém estas confirmações.

Mudanças importantes desde a versão 2.3.0

  • Várias correções de bugs foram adicionadas.

Versão 2.4.0-rc01

20 de setembro de 2023

Lançamento de androidx.sqlite:sqlite:2.4.0-rc01, androidx.sqlite:sqlite-framework:2.4.0-rc01 e androidx.sqlite:sqlite-ktx:2.4.0-rc01. A versão 2.4.0-rc01 contém estas confirmações.

Versão 2.4.0-beta01

23 de agosto de 2023

Lançamento de androidx.sqlite:sqlite:2.4.0-beta01, androidx.sqlite:sqlite-framework:2.4.0-beta01 e androidx.sqlite:sqlite-ktx:2.4.0-beta01. A versão 2.4.0-beta01 contém estas confirmações.

Versão 2.4.0-alpha03

9 de agosto de 2023

Lançamento de androidx.sqlite:sqlite:2.4.0-alpha03, androidx.sqlite:sqlite-framework:2.4.0-alpha03 e androidx.sqlite:sqlite-ktx:2.4.0-alpha03. A versão 2.4.0-alpha03 contém estas confirmações.

Versão 2.4.0-alpha02

21 de junho de 2023

Lançamento de androidx.sqlite:sqlite:2.4.0-alpha02, androidx.sqlite:sqlite-framework:2.4.0-alpha02 e androidx.sqlite:sqlite-ktx:2.4.0-alpha02 sem mudanças. A versão 2.4.0-alpha02 contém estas confirmações.

Versão 2.4.0-alpha01

22 de março de 2023

Lançamento de androidx.sqlite:sqlite:2.4.0-alpha01, androidx.sqlite:sqlite-framework:2.4.0-alpha01 e androidx.sqlite:sqlite-ktx:2.4.0-alpha01. A versão 2.4.0-alpha01 contém estas confirmações.

Correções de bugs

  • Corrigida uma NullPointerException que poderia ocorrer em SupportSQLiteQueryBuilder. (5df8698).

Versão 2.3.1

Versão 2.3.1

22 de março de 2023

Lançamento de androidx.sqlite:sqlite:2.3.1, androidx.sqlite:sqlite-framework:2.3.1 e androidx.sqlite:sqlite-ktx:2.3.1. A versão 2.3.1 contém estas confirmações.

Correções de bugs

  • Evite um problema de framework em que as consultas SQL não sejam invalidadas após uma mudança de esquema durante as migrações. FrameworkSupportSQLiteOpenHelper agora definirá o cache mínimo de instruções SQL durante as migrações para evitar o problema. (0ad2a8f).
  • Correção de um problema em que o diretório de cache pode não estar disponível para uso para SupportSQLiteLock, portanto, um arquivo nulo precisa ser processado corretamente (9d177dc).
  • Correção de um problema em que attachedDbs não retornava a lista completa de bancos de dados anexados. (5f008e1).

Versão 2.3.0

Versão 2.3.0

11 de janeiro de 2023

Lançamento de androidx.sqlite:sqlite:2.3.0, androidx.sqlite:sqlite-framework:2.3.0 e androidx.sqlite:sqlite-ktx:2.3.0. A versão 2.3.0 contém estas confirmações.

Mudanças importantes desde a versão 2.2.0

  • As origens androidx.sqlite do grupo de bibliotecas foram convertidas de Java para Kotlin. Como o androidx.sqlite tem algumas anotações de nulidade ausentes, é possível que você encontre erros de incompatibilidade de origem caso as origens estejam em Kotlin e o código esteja inferindo a nulidade errada. Além disso, alguns métodos getter foram convertidos em propriedades que exigem a sintaxe de acesso a propriedades em arquivos Kotlin. Registre um bug no caso de incompatibilidades significativas (b/240707042).
  • Uma API foi adicionada à configuração do SupportSQLite's para permitir a perda de dados durante o mecanismo de recuperação (I1b830, b/215592732).
  • Uma API para bloqueio e uso de vários processos no nível do FrameworkSQLite* foi adicionada para proteger a primeira criação e migração de bancos de dados de vários processos (Ied267, b/193182592).

Versão 2.3.0-rc01

7 de dezembro de 2022

Lançamento de androidx.sqlite:sqlite:2.3.0-rc01, androidx.sqlite:sqlite-framework:2.3.0-rc01 e androidx.sqlite:sqlite-ktx:2.3.0-rc01. A versão 2.3.0-rc01 contém estas confirmações.

Correções de bugs

  • O problema da NPE em SupportSQLiteQueryBuilder nas colunas anuláveis foi corrigido (Ica8f5).

Versão 2.3.0-beta02

9 de novembro de 2022

Lançamento de androidx.sqlite:sqlite:2.3.0-beta02, androidx.sqlite:sqlite-framework:2.3.0-beta02 e androidx.sqlite:sqlite-ktx:2.3.0-beta02. A versão 2.3.0-beta02 contém estas confirmações.

  • Foram corrigidas várias APIs que usam argumentos de consulta de invariante (Array<Any?>) a contravariante (Array<out Any?>) para corresponder ao comportamento da matriz do Java (b/253531073).

Versão 2.3.0-beta01

5 de outubro de 2022

Lançamento de androidx.sqlite:sqlite:2.3.0-beta01, androidx.sqlite:sqlite-framework:2.3.0-beta01 e androidx.sqlite:sqlite-ktx:2.3.0-beta01. A versão 2.3.0-beta01 contém estas confirmações.

Mudanças na API

  • Todas as origens android.sqlite foram convertidas de Java em Kotlin (b/240707042).
  • Uma mudança notável na conversão é que estas funções getter se tornaram propriedades:
    • Em SupportSQLiteDatabase:
    • attachedDbs
    • isDatabaseIntegrityOk
    • isDbLockedByCurrentThread
    • isOpen
    • isReadOnly
    • isWriteAheadLoggingEnabled
    • maximumSize
    • pageSize
    • path
    • version
    • Em SupportSQLiteOpenHelper:
    • databaseName
    • readableDatabase
    • writableDatabase

Versão 2.3.0-alpha05

24 de agosto de 2022

Lançamento de androidx.sqlite:sqlite:2.3.0-alpha05, androidx.sqlite:sqlite-framework:2.3.0-alpha05 e androidx.sqlite:sqlite-ktx:2.3.0-alpha05. A versão 2.3.0-alpha05 contém estas confirmações.

Mudanças na API

  • As origens androidx.sqlite do grupo de bibliotecas foram convertidas de Java em Kotlin. Como o androidx.sqlite tem algumas anotações de nulidade ausentes, é possível que você encontre erros de incompatibilidade de origem se as origens estão em Kotlin, e o código está inferindo a nulidade errada. Registre um bug em caso de incompatibilidade significativa (b/240707042).

Versão 2.3.0-alpha04

10 de agosto de 2022

Lançamento de androidx.sqlite:sqlite:2.3.0-alpha04, androidx.sqlite:sqlite-framework:2.3.0-alpha04 e androidx.sqlite:sqlite-ktx:2.3.0-alpha04. A versão 2.3.0-alpha04 contém estas confirmações.

Mudanças na API

  • Atualização da nulidade (I29fbd).

Versão 2.3.0-alpha03

1º de junho de 2022

Lançamento de androidx.sqlite:sqlite:2.3.0-alpha03, androidx.sqlite:sqlite-framework:2.3.0-alpha03 e androidx.sqlite:sqlite-ktx:2.3.0-alpha03. A versão 2.3.0-alpha03 contém estas confirmações.

Mudanças na API

  • androidx.sqlite.ProcessLock foi restrito. A API tem escopo e é limitada à função dela em androidx.sqlite. Não é recomendado o uso geral dela para bloqueio de vários processos (I1643f).

Versão 2.3.0-alpha02

6 de abril de 2022

Lançamento de androidx.sqlite:sqlite:2.3.0-alpha02, androidx.sqlite:sqlite-framework:2.3.0-alpha02 e androidx.sqlite:sqlite-ktx:2.3.0-alpha02. A versão 2.3.0-alpha02 contém estas confirmações.

  • Nenhuma mudança significativa desde a versão 2.3.0-alpha01.

Versão 2.3.0-alpha01

23 de fevereiro de 2022

Lançamento de androidx.sqlite:sqlite:2.3.0-alpha01, androidx.sqlite:sqlite-framework:2.3.0-alpha01 e androidx.sqlite:sqlite-ktx:2.3.0-alpha01. A versão 2.3.0-alpha01 contém estas confirmações.

Mudanças na API

  • Adição de uma API à configuração do SupportSQLite para permitir a perda de dados durante o mecanismo de recuperação (I1b830, b/215592732).
  • Adição de API para bloqueio e uso de vários processos no nível do FrameworkSQLite* para proteger a primeira criação e migração de bancos de dados de vários processos (Ied267, b/193182592).

Versão 2.2.0

Versão 2.2.0

15 de dezembro de 2021

Lançamento de androidx.sqlite:sqlite:2.2.0, androidx.sqlite:sqlite-framework:2.2.0 e androidx.sqlite:sqlite-ktx:2.2.0. A versão 2.2.0 contém estas confirmações.

Mudanças importantes desde a versão 2.1.0

Adição do método padrão para execPerConnectionSQL() na SupportSQLiteDatabase.

Versão 2.2.0-rc01

1º de dezembro de 2021

Lançamento de androidx.sqlite:sqlite:2.2.0-rc01, androidx.sqlite:sqlite-framework:2.2.0-rc01 e androidx.sqlite:sqlite-ktx:2.2.0-rc01. A versão 2.2.0-rc01 contém estas confirmações.

Nenhuma mudança significativa desde a versão 2.2.0-beta01.

Versão 2.2.0-beta01

13 de outubro de 2021

Lançamento de androidx.sqlite:sqlite:2.2.0-beta01, androidx.sqlite:sqlite-framework:2.2.0-beta01 e androidx.sqlite:sqlite-ktx:2.2.0-beta01. A versão 2.2.0-beta01 contém estas confirmações.

  • Nenhuma mudança em relação à versão Alfa anterior.

Versão 2.2.0-alpha02

21 de julho de 2021

Lançamento de androidx.sqlite:sqlite:2.2.0-alpha02, androidx.sqlite:sqlite-framework:2.2.0-alpha02 e androidx.sqlite:sqlite-ktx:2.2.0-alpha02. A versão 2.2.0-alpha02 contém estas confirmações.

Nenhuma mudança significativa desde a versão 2.2.0-alpha01. Esta versão é apenas para alinhamento com a Room 2.4.0-alpha04.

Versão 2.2.0-alpha01

16 de junho de 2021

Lançamento de androidx.sqlite:sqlite:2.2.0-alpha01, androidx.sqlite:sqlite-framework:2.2.0-alpha01 e androidx.sqlite:sqlite-ktx:2.2.0-alpha01. A versão 2.2.0-alpha01 contém estas confirmações.

Mudanças na API

  • Adição do método padrão para execPerConnectionSQL() em SupportSQLiteDatabase (I86326, b/172270145)

Versão 2.1.0

Versão 2.1.0

22 de janeiro de 2020

Lançamento de androidx.sqlite:sqlite:2.1.0, androidx.sqlite:sqlite-framework:2.1.0 e androidx.sqlite:sqlite-ktx:2.1.0 sem mudanças desde 2.1.0-rc01. A versão 2.1.0 contém estas confirmações.

Mudanças importantes desde a versão 2.0.1

  • Suporte a useNoBackupDirectory, que pode ser usado para indicar que o banco de dados precisa ser criado no diretório sem backup ao usar SupportSQLiteOpenHelper.

Versão 2.1.0-rc01

8 de janeiro de 2020

androidx.sqlite:sqlite-*:2.1.0-rc01 é lançado. A versão 2.1.0-rc01 contém estas confirmações.

Essa versão é idêntica a 2.1.0-beta01.

Versão 2.1.0-beta01

4 de dezembro de 2019

Lançamento de androidx.sqlite:sqlite:2.1.0-beta01, androidx.sqlite:sqlite-framework:2.1.0-beta01 e androidx.sqlite:sqlite-ktx:2.1.0-beta01 sem mudanças desde 2.1.0-alpha01. A versão 2.1.0-beta01 contém estas confirmações.

Versão 2.1.0-alpha01

7 de novembro de 2019

Lançamento de androidx.sqlite:sqlite:2.1.0-alpha01, androidx.sqlite:sqlite-framework:2.1.0-alpha01 e androidx.sqlite:sqlite-ktx:2.1.0-alpha01. A versão 2.1.0-alpha01 contém essas confirmações (link em inglês).

Mudanças na API

  • Adição de uma nova propriedade a SupportSQLiteOpenHelper.Configuration chamada useNoBackupDirectory para indicar que um banco de dados baseado em arquivo precisa ser criado e localizado no diretório sem backup.

Versão 2.0.1

Versão 2.0.1

13 de março de 2019

Lançamento da versão 2.0.1 do grupo de artefatos androidx.sqlite com duas correções de bugs.

Correções de bugs

  • Foram corrigidos dois problemas em que FrameworkSQLiteOpenHelper não se recuperava corretamente de um banco de dados corrompido ou de uma migração incorreta durante a inicialização (b/111504749 e b/111519144).