Склайт
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 )