Склайт

Библиотека androidx.sqlite содержит абстрактные интерфейсы и базовые реализации, которые можно использовать для создания собственных библиотек, обращающихся к SQLite.

Возможно, вы захотите рассмотреть возможность использования библиотеки Room , которая обеспечивает уровень абстракции поверх SQLite, чтобы обеспечить более надежный доступ к базе данных, используя при этом всю мощь SQLite.

Последнее обновление Стабильный выпуск Кандидат на выпуск Бета-версия Альфа-релиз
16 октября 2024 г. 2.4.0 - - 2.5.0-альфа10

Объявление зависимостей

Чтобы добавить зависимость от SQLite, вам необходимо добавить в свой проект репозиторий Google Maven. Для получения дополнительной информации прочтите репозиторий Google Maven .

Добавьте зависимости для нужных вам артефактов в файл build.gradle для вашего приложения или модуля:

классный

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

Котлин

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

Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .

Обратная связь

Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.

Создать новую задачу

Дополнительную информацию см . в документации по системе отслеживания проблем .

Версия 2.5

Версия 2.5.0-альфа10

16 октября 2024 г.

Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha10 . Версия 2.5.0-alpha10 содержит эти коммиты .

Изменения API

  • Добавьте SQLiteStatement.getColumnType() вместе с различными результирующими константами SQLITE_DATA_* , чтобы можно было получить тип данных столбца. ( I1985c , б/369636251 )

Версия 2.5.0-альфа09

2 октября 2024 г.

Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha09 . Версия 2.5.0-alpha09 содержит эти коммиты .

Версия 2.5.0-альфа08

18 сентября 2024 г.

Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha08 . Версия 2.5.0-alpha08 содержит эти коммиты .

Версия 2.5.0-альфа07

21 августа 2024 г.

Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha07 . Версия 2.5.0-alpha07 содержит эти коммиты .

Новые возможности

  • Добавьте поддержку Linux ARM 64 в целевые устройства JVM/Desktop. ( б/358045505 )

Версия 2.5.0-альфа06

7 августа 2024 г.

Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha06 . Версия 2.5.0-alpha06 содержит эти коммиты .

Новые возможности

  • Добавить поддержку многоплатформенной цели linuxArm64 Kotlin ( I139d3 , b/338268719 ).

Версия 2.5.0-альфа05

10 июля 2024 г.

Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha05 . Версия 2.5.0-alpha05 содержит эти коммиты .

Изменения API

  • SQLiteKt переименован в SQLite , а BundledSQLiteKt — в BundledSQLite . ( I8b501 )

Версия 2.5.0-альфа04

12 июня 2024 г.

Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha04 . Версия 2.5.0-alpha04 содержит эти коммиты .

Изменения API

  • В BundledSQLiteDriver добавлен API-интерфейс перегрузки open() для передачи флагов открытия при открытии соединения с базой данных. Полезно для открытия базы данных в режиме только для чтения или использования сериализованного поточно-безопасного режима вместо многопоточного режима, входящего в комплект поставки SQLite ( b/340949940 ).

Исправления ошибок

  • Исправлена ​​проблема с связыванием в комплекте драйвера SQLite, которая приводила к выдаче UnsatisfiedLinkError из-за отсутствия атомарных символов на устройствах Android с ARM32. ( б/341639198 )
  • Исправлена ​​проблема в драйверах, из-за которой привязка массива байтов нулевой длины к столбцу приводила к получению нулевого значения при чтении из него.

Версия 2.5.0-альфа03

29 мая 2024 г.

Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha03 . Версия 2.5.0-alpha03 содержит эти коммиты .

Исправления ошибок

  • Исправлена ​​проблема с BundledSQLiteDriver , из-за которой базы данных, созданные с его помощью, содержали нулевой символ-терминатор C. ( б/340822359 )

Версия 2.5.0-альфа02

14 мая 2024 г.

androidx.sqlite:sqlite-*:2.5.0-alpha02 выпущен без существенных изменений по сравнению с версией 2.5.0-alpha01. Версия 2.5.0-alpha02 содержит эти коммиты .

Версия 2.5.0-альфа01

1 мая 2024 г.

Выпущен androidx.sqlite:sqlite-*:2.5.0-alpha01 . Версия 2.5.0-alpha01 содержит эти коммиты .

Новые возможности

  • Поддержка многоплатформенности Kotlin (KMP) : с выпуском Room 2.7.0-alpha01, который является первым выпуском Room KMP, также были обновлены API-интерфейсы SQLite , которые позволяют Room быть KMP. Пакет andriodx.sqlite содержит три интерфейса, которые определяют API-интерфейсы SQLite низкого уровня: SQLiteDriver , SQLiteConnection и SQLiteStatement . Артефакт androidx.sqlite:sqlite-framework предлагает реализацию интерфейсов для Android и iOS в исходном виде, а androidx.sqlite:sqlite-bundled предлагает реализацию, использующую SQLite , скомпилированный из исходного кода (также известный как «связанный SQLite»). Дополнительную информацию об API драйвера SQLite см. в официальной документации SQLite KMP .

Версия 2.4

Версия 2.4.0

18 октября 2023 г.

androidx.sqlite:sqlite:2.4.0 , androidx.sqlite:sqlite-framework:2.4.0 и androidx.sqlite:sqlite-ktx:2.4.0 выпущены. Версия 2.4.0 содержит эти коммиты.

Важные изменения с версии 2.3.0

  • Добавлены различные исправления ошибок.

Версия 2.4.0-rc01

20 сентября 2023 г.

androidx.sqlite:sqlite:2.4.0-rc01 , androidx.sqlite:sqlite-framework:2.4.0-rc01 и androidx.sqlite:sqlite-ktx:2.4.0-rc01 выпущены. Версия 2.4.0-rc01 содержит эти коммиты.

Версия 2.4.0-бета01

23 августа 2023 г.

androidx.sqlite:sqlite:2.4.0-beta01 , androidx.sqlite:sqlite-framework:2.4.0-beta01 и androidx.sqlite:sqlite-ktx:2.4.0-beta01 выпущены. Версия 2.4.0-beta01 содержит эти коммиты.

Версия 2.4.0-альфа03

9 августа 2023 г.

androidx.sqlite:sqlite:2.4.0-alpha03 , androidx.sqlite:sqlite-framework:2.4.0-alpha03 и androidx.sqlite:sqlite-ktx:2.4.0-alpha03 выпущены. Версия 2.4.0-alpha03 содержит эти коммиты.

Версия 2.4.0-альфа02

21 июня 2023 г.

androidx.sqlite:sqlite:2.4.0-alpha02 , androidx.sqlite:sqlite-framework:2.4.0-alpha02 и androidx.sqlite:sqlite-ktx:2.4.0-alpha02 выпущены без изменений. Версия 2.4.0-alpha02 содержит эти коммиты.

Версия 2.4.0-альфа01

22 марта 2023 г.

androidx.sqlite:sqlite:2.4.0-alpha01 , androidx.sqlite:sqlite-framework:2.4.0-alpha01 и androidx.sqlite:sqlite-ktx:2.4.0-alpha01 выпущены. Версия 2.4.0-alpha01 содержит эти коммиты.

Исправления ошибок

  • Исправлено исключение NullPointerException , которое могло возникнуть в SupportSQLiteQueryBuilder . ( 5df8698 )

Версия 2.3.1

Версия 2.3.1

22 марта 2023 г.

androidx.sqlite:sqlite:2.3.1 , androidx.sqlite:sqlite-framework:2.3.1 и androidx.sqlite:sqlite-ktx:2.3.1 выпущены. Версия 2.3.1 содержит эти коммиты.

Исправления ошибок

  • Избегайте проблем с платформой, из-за которых SQL-запросы не становились недействительными после изменения схемы во время миграции. FrameworkSupportSQLiteOpenHelper теперь будет устанавливать минимальный кэш операторов SQL во время миграции, чтобы избежать этой проблемы. ( 0ad2a8f )
  • Исправлена ​​проблема, из-за которой каталог кэша мог быть недоступен для использования SupportSQLiteLock , поэтому нулевой файл необходимо корректно обрабатывать. ( 9d177dc )
  • Исправлена ​​проблема, из-за которой attachedDbs не возвращал полный список подключенных баз данных. ( 5f008e1 )

Версия 2.3.0

Версия 2.3.0

11 января 2023 г.

androidx.sqlite:sqlite:2.3.0 , androidx.sqlite:sqlite-framework:2.3.0 и androidx.sqlite:sqlite-ktx:2.3.0 выпущены. Версия 2.3.0 содержит эти коммиты.

Важные изменения с версии 2.2.0

  • Исходный код группы библиотек androidx.sqlite преобразован из Java в Kotlin. Имейте в виду, что, поскольку androidx.sqlite отсутствуют некоторые аннотации об обнуляемости, вы можете столкнуться с ошибками несовместимости исходного кода, если ваши источники находятся в Kotlin и код выводит неправильную обнуляемость. Более того, некоторые методы получения были преобразованы в свойства, требующие синтаксиса доступа к свойствам в файлах Kotlin. Пожалуйста, сообщите об ошибке, если есть какие-либо существенные несовместимости. ( б/240707042 )
  • Добавьте API в конфигурацию SupportSQLite's , чтобы разрешить потерю данных во время механизма восстановления. ( I1b830 , б/215592732 )
  • Добавлен API для многопроцессной блокировки и использования на уровне FrameworkSQLite* для защиты многопроцессного создания и миграции баз данных в первый раз. ( Ied267 , р/193182592 )

Версия 2.3.0-rc01

7 декабря 2022 г.

androidx.sqlite:sqlite:2.3.0-rc01 , androidx.sqlite:sqlite-framework:2.3.0-rc01 и androidx.sqlite:sqlite-ktx:2.3.0-rc01 выпущены. Версия 2.3.0-rc01 содержит эти коммиты.

Исправления ошибок

  • Решение проблемы NPE в SupportSQLiteQueryBuilder для столбцов, допускающих значение NULL. ( Ica8f5 )

Версия 2.3.0-бета02

9 ноября 2022 г.

androidx.sqlite:sqlite:2.3.0-beta02 , androidx.sqlite:sqlite-framework:2.3.0-beta02 и androidx.sqlite:sqlite-ktx:2.3.0-beta02 выпущены. Версия 2.3.0-beta02 содержит эти коммиты.

  • Исправлены различные API, которые переводят аргументы запроса из инвариантного ( Array<Any?> ) в контравариантный ( Array<out Any?> ), чтобы соответствовать поведению массива Java. ( б / 253531073 )

Версия 2.3.0-бета01

5 октября 2022 г.

androidx.sqlite:sqlite:2.3.0-beta01 , androidx.sqlite:sqlite-framework:2.3.0-beta01 и androidx.sqlite:sqlite-ktx:2.3.0-beta01 выпущены. Версия 2.3.0-beta01 содержит эти коммиты.

Изменения API

  • Все исходные коды android.sqlite были конвертированы из Java в Kotlin. б/240707042
  • Одним из заметных изменений преобразования является то, что следующие функции получения стали свойствами:
    • В SupportSQLiteDatabase :
    • attachedDbs
    • isDatabaseIntegrityOk
    • isDbLockedByCurrentThread
    • isOpen
    • isReadOnly
    • isWriteAheadLoggingEnabled
    • maximumSize
    • pageSize
    • path
    • version
    • В SupportSQLiteOpenHelper :
    • databaseName
    • readableDatabase
    • writableDatabase

Версия 2.3.0-альфа05

24 августа 2022 г.

androidx.sqlite:sqlite:2.3.0-alpha05 , androidx.sqlite:sqlite-framework:2.3.0-alpha05 и androidx.sqlite:sqlite-ktx:2.3.0-alpha05 выпущены. Версия 2.3.0-alpha05 содержит эти коммиты.

Изменения API

  • Исходный код группы библиотек androidx.sqlite преобразован из Java в Kotlin. Имейте в виду, что, поскольку в androidx.sqlite отсутствуют некоторые аннотации об нулевом значении, вы можете столкнуться с ошибками несовместимости исходного кода, если ваши источники находятся в Kotlin, а код выводит неправильную допустимость нулевого значения. Пожалуйста, сообщите об ошибке, если есть какие-либо существенные несовместимости. ( б/240707042 )

Версия 2.3.0-альфа04

10 августа 2022 г.

androidx.sqlite:sqlite:2.3.0-alpha04 , androidx.sqlite:sqlite-framework:2.3.0-alpha04 и androidx.sqlite:sqlite-ktx:2.3.0-alpha04 выпущены. Версия 2.3.0-alpha04 содержит эти коммиты.

Изменения API

  • Обновлена ​​возможность обнуления ( I29fbd ).

Версия 2.3.0-альфа03

1 июня 2022 г.

androidx.sqlite:sqlite:2.3.0-alpha03 , androidx.sqlite:sqlite-framework:2.3.0-alpha03 и androidx.sqlite:sqlite-ktx:2.3.0-alpha03 выпущены. Версия 2.3.0-alpha03 содержит эти коммиты.

Изменения API

  • Сделайте androidx.sqlite.ProcessLock ограниченным. Область API ограничена его функцией в androidx.sqlite и не должна использоваться в качестве многопроцессной блокировки общего назначения. ( I1643f )

Версия 2.3.0-альфа02

6 апреля 2022 г.

androidx.sqlite:sqlite:2.3.0-alpha02 , androidx.sqlite:sqlite-framework:2.3.0-alpha02 и androidx.sqlite:sqlite-ktx:2.3.0-alpha02 выпущены. Версия 2.3.0-alpha02 содержит эти коммиты.

  • Никаких существенных изменений с версии 2.3.0-alpha01.

Версия 2.3.0-альфа01

23 февраля 2022 г.

androidx.sqlite:sqlite:2.3.0-alpha01 , androidx.sqlite:sqlite-framework:2.3.0-alpha01 и androidx.sqlite:sqlite-ktx:2.3.0-alpha01 выпущены. Версия 2.3.0-alpha01 содержит эти коммиты.

Изменения API

  • Добавьте API в конфигурацию SupportSQLite, чтобы разрешить потерю данных во время механизма восстановления. ( I1b830 , б/215592732 )
  • Добавлен API для многопроцессной блокировки и использования на уровне FrameworkSQLite* для защиты многопроцессного создания и миграции баз данных в первый раз. ( Иед267 , р/193182592 )

Версия 2.2.0

Версия 2.2.0

15 декабря 2021 г.

androidx.sqlite:sqlite:2.2.0 , androidx.sqlite:sqlite-framework:2.2.0 и androidx.sqlite:sqlite-ktx:2.2.0 выпущены. Версия 2.2.0 содержит эти коммиты.

Важные изменения с версии 2.1.0

Добавьте метод по умолчанию для execPerConnectionSQL() в SupportSQLiteDatabase .

Версия 2.2.0-rc01

1 декабря 2021 г.

androidx.sqlite:sqlite:2.2.0-rc01 , androidx.sqlite:sqlite-framework:2.2.0-rc01 и androidx.sqlite:sqlite-ktx:2.2.0-rc01 выпущены. Версия 2.2.0-rc01 содержит эти коммиты.

Никаких существенных изменений по сравнению с версией 2.2.0-beta01.

Версия 2.2.0-бета01

13 октября 2021 г.

androidx.sqlite:sqlite:2.2.0-beta01 , androidx.sqlite:sqlite-framework:2.2.0-beta01 и androidx.sqlite:sqlite-ktx:2.2.0-beta01 выпущены. Версия 2.2.0-beta01 содержит эти коммиты.

  • Никаких изменений по сравнению с предыдущей альфа-версией.

Версия 2.2.0-альфа02

21 июля 2021 г.

androidx.sqlite:sqlite:2.2.0-alpha02 , androidx.sqlite:sqlite-framework:2.2.0-alpha02 и androidx.sqlite:sqlite-ktx:2.2.0-alpha02 выпущены. Версия 2.2.0-alpha02 содержит эти коммиты.

Никаких существенных изменений по сравнению с версией 2.2.0-alpha01. Этот выпуск просто соответствует выпуску Room 2.4.0-alpha04 .

Версия 2.2.0-альфа01

16 июня 2021 г.

androidx.sqlite:sqlite:2.2.0-alpha01 , androidx.sqlite:sqlite-framework:2.2.0-alpha01 и androidx.sqlite:sqlite-ktx:2.2.0-alpha01 выпущены. Версия 2.2.0-alpha01 содержит эти коммиты.

Изменения API

  • Добавьте метод по умолчанию для execPerConnectionSQL() в SupportSQLiteDatabase ( I86326 , b/172270145 ).

Версия 2.1.0

Версия 2.1.0

22 января 2020 г.

androidx.sqlite:sqlite:2.1.0 , androidx.sqlite:sqlite-framework:2.1.0 и androidx.sqlite:sqlite-ktx:2.1.0 выпущены без изменений с 2.1.0-rc01 . Версия 2.1.0 содержит эти коммиты .

Важные изменения с версии 2.0.1

  • Поддержка useNoBackupDirectory , которую можно использовать для указания того, что база данных должна быть создана в каталоге без резервного копирования при использовании SupportSQLiteOpenHelper .

Версия 2.1.0-rc01

8 января 2020 г.

Выпущен androidx.sqlite:sqlite-*:2.1.0-rc01 . Версия 2.1.0-rc01 содержит эти коммиты .

Этот выпуск идентичен 2.1.0-beta01 .

Версия 2.1.0-бета01

4 декабря 2019 г.

androidx.sqlite:sqlite:2.1.0-beta01 , androidx.sqlite:sqlite-framework:2.1.0-beta01 и androidx.sqlite:sqlite-ktx:2.1.0-beta01 выпущены без изменений с версии 2.1.0-alpha01 . Версия 2.1.0-beta01 содержит эти коммиты .

Версия 2.1.0-альфа01

7 ноября 2019 г.

androidx.sqlite:sqlite:2.1.0-alpha01 , androidx.sqlite:sqlite-framework:2.1.0-alpha01 и androidx.sqlite:sqlite-ktx:2.1.0-alpha01 выпущены. Версия 2.1.0-alpha01 содержит эти коммиты .

Изменения API

  • В SupportSQLiteOpenHelper.Configuration добавлено новое свойство под названием useNoBackupDirectory указывающее, что файловая база данных должна быть создана и расположена в каталоге, в котором нет резервных копий.

Версия 2.0.1

Версия 2.0.1

13 марта 2019 г.

Версия 2.0.1 группы артефактов androidx.sqlite выпущена с двумя исправлениями ошибок.

Исправления ошибок

  • Исправлены две проблемы, из-за которых FrameworkSQLiteOpenHelper не мог должным образом восстановиться после поврежденной базы данных или неправильной миграции во время инициализации. ( б/111504749 и б/111519144 )