SQLite
androidx.sqlite
库包含抽象接口以及基本实现,可用于构建您自己的访问 SQLite 的库。
您可能想要考虑使用 Room 库,它提供了 SQLite 之上的抽象层,允许更强大的数据库访问,同时充分利用 SQLite 的功能。
最新更新 | 稳定版 | 候选发布版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2024 年 8 月 21 日 | 2.4.0 | - | - | 2.5.0-alpha07 |
声明依赖项
要添加对 SQLite 的依赖项,您必须将 Google Maven 存储库添加到您的项目中。阅读 Google 的 Maven 存储库 以了解更多信息。
在应用程序或模块的 build.gradle
文件中添加所需工件的依赖项
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") }
有关依赖项的更多信息,请参阅 添加构建依赖项。
反馈
您的反馈有助于使 Jetpack 变得更好。如果您发现新问题或有改进此库的想法,请告知我们。在创建新问题之前,请查看此库中现有问题。您可以通过单击星形按钮为现有问题添加您的投票。
有关更多信息,请参阅 问题跟踪器文档。
版本 2.5
版本 2.5.0-alpha07
2024 年 8 月 21 日
androidx.sqlite:sqlite-*:2.5.0-alpha07
已发布。版本 2.5.0-alpha07 包含 这些提交。
新功能
- 在 JVM/桌面目标中添加对 Linux ARM 64 的支持。 (b/358045505)
版本 2.5.0-alpha06
2024 年 8 月 7 日
androidx.sqlite:sqlite-*:2.5.0-alpha06
已发布。版本 2.5.0-alpha06 包含 这些提交。
新功能
- 添加对
linuxArm64
Kotlin 多平台目标的支持 (I139d3, b/338268719)
版本 2.5.0-alpha05
2024 年 7 月 10 日
androidx.sqlite:sqlite-*:2.5.0-alpha05
已发布。版本 2.5.0-alpha05 包含这些提交。
API 更改
- 将
SQLiteKt
重命名为SQLite
,并将BundledSQLiteKt
重命名为BundledSQLite
。(I8b501)
版本 2.5.0-alpha04
2024 年 6 月 12 日
androidx.sqlite:sqlite-*:2.5.0-alpha04
已发布。版本 2.5.0-alpha04 包含这些提交。
API 更改
- 在
BundledSQLiteDriver
中添加了open()
重载 API,用于在打开数据库连接时传递打开标志。这对于在只读模式下打开数据库或使用序列化线程安全模式而不是捆绑的 SQLite 编译的线程模式很有用 (b/340949940).
错误修复
- 修复了捆绑 SQLite 驱动程序中的链接问题,该问题会导致
UnsatisfiedLinkError
由于 Android 设备中缺少原子符号而被抛出 (ARM32)。(b/341639198) - 修复了驱动程序中将零长度字节数组绑定到列会导致在读取时出现空值的问题。
版本 2.5.0-alpha03
2024 年 5 月 29 日
androidx.sqlite:sqlite-*:2.5.0-alpha03
已发布。版本 2.5.0-alpha03 包含这些提交。
错误修复
- 修复了
BundledSQLiteDriver
中的一个问题,该问题会导致使用它创建的数据库包含 C 空终止符。(b/340822359)
版本 2.5.0-alpha02
2024 年 5 月 14 日
androidx.sqlite:sqlite-*:2.5.0-alpha02
已发布,自 2.5.0-alpha01 以来没有重大变化。版本 2.5.0-alpha02 包含这些提交。
版本 2.5.0-alpha01
2024 年 5 月 1 日
androidx.sqlite:sqlite-*:2.5.0-alpha01
已发布。版本 2.5.0-alpha01 包含这些提交。
新功能
- Kotlin 多平台 (KMP) 支持:随着 Room 2.7.0-alpha01 的发布,它是 Room KMP 的第一个版本,支持 Room 成为 KMP 的
SQLite
API 也已更新。包andriodx.sqlite
包含三个接口,它们定义了低级 SQLite API:SQLiteDriver
、SQLiteConnection
和SQLiteStatement
。工件androidx.sqlite:sqlite-framework
为 Android 和 iOS 提供了接口实现,而androidx.sqlite:sqlite-bundled
提供了使用从源代码编译的SQLite
(也称为“捆绑 SQLite”) 的实现。有关 SQLite 驱动程序 API 的更多信息,请参阅官方 SQLite KMP 文档。
版本 2.4
版本 2.4.0
2023 年 10 月 18 日
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
2023 年 9 月 20 日
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-beta01
2023 年 8 月 23 日
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-alpha03
2023 年 8 月 9 日
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-alpha02
2023 年 6 月 21 日
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-alpha01
2023 年 3 月 22 日
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 包含这些提交。
错误修复
- 修复了在
SupportSQLiteQueryBuilder
中可能发生的NullPointerException
。(5df8698)
版本 2.3.1
版本 2.3.1
2023 年 3 月 22 日
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
2023 年 1 月 11 日
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 中使用源代码并且代码推断出错误的可空性,则可能会遇到源代码不兼容错误。此外,某些 getter 方法已转换为属性,需要在 Kotlin 文件中使用属性访问语法。如果存在任何重大不兼容性,请提交错误报告。(b/240707042) - 在
SupportSQLite
的配置中添加了一个 API,允许在恢复机制期间丢失数据。(I1b830、b/215592732) - 在
FrameworkSQLite*
级别添加了用于多进程锁和使用的 API,以保护多进程首次数据库创建和迁移。(Ied267、b/193182592)
版本 2.3.0-rc01
2022 年 12 月 7 日
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 包含这些提交。
错误修复
- 解决
SupportSQLiteQueryBuilder
中针对可空列的 NPE 问题。(Ica8f5)
版本 2.3.0-beta02
2022 年 11 月 9 日
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 包含这些提交。
- 修复了从不变 (
Array<Any?>
) 到逆变 (Array<out Any?>
) 获取查询参数的各种 API,以匹配 Java 的数组行为。(b/253531073)
版本 2.3.0-beta01
2022 年 10 月 5 日
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。b/240707042
- 转换的一个显著变化是,以下 getter 函数已成为属性
- 在
SupportSQLiteDatabase
中 attachedDbs
isDatabaseIntegrityOk
isDbLockedByCurrentThread
isOpen
isReadOnly
isWriteAheadLoggingEnabled
maximumSize
pageSize
path
version
- 在
SupportSQLiteOpenHelper
中 databaseName
readableDatabase
writableDatabase
- 在
版本 2.3.0-alpha05
2022 年 8 月 24 日
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 中使用源代码并且代码推断出错误的可空性,则可能会遇到源代码不兼容错误。如果存在任何重大不兼容性,请提交错误报告。(b/240707042)
版本 2.3.0-alpha04
2022 年 8 月 10 日
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-alpha03
2022 年 6 月 1 日
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-alpha02
2022 年 4 月 6 日
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-alpha01
2022 年 2 月 23 日
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 更改
- 在 SupportSQLite 的配置中添加一个 API,允许在恢复机制期间丢失数据。 (I1b830、b/215592732)
- 在 FrameworkSQLite* 层级添加了多进程锁的 API 以及使用方式,以保护多进程首次创建数据库和迁移操作。 (Ied267、b/193182592)
版本 2.2.0
版本 2.2.0
2021 年 12 月 15 日
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 以来重要变更
在 SupportSQLiteDatabase
中为 execPerConnectionSQL()
添加默认方法。
版本 2.2.0-rc01
2021 年 12 月 1 日
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-beta01
2021 年 10 月 13 日
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 包含这些提交。
- 与之前的 alpha 版本相比没有变化。
版本 2.2.0-alpha02
2021 年 7 月 21 日
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-alpha01
2021 年 6 月 16 日
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 更改
- 在 SupportSQLiteDatabase 中为
execPerConnectionSQL()
添加默认方法 (I86326、b/172270145)
版本 2.1.0
版本 2.1.0
2020 年 1 月 22 日
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
2020 年 1 月 8 日
androidx.sqlite:sqlite-*:2.1.0-rc01
已发布。 版本 2.1.0-rc01 包含这些提交.
此版本与 2.1.0-beta01
相同。
版本 2.1.0-beta01
2019 年 12 月 4 日
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-alpha01
2019 年 11 月 7 日
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
2019 年 3 月 13 日
版本 2.0.1 的 androidx.sqlite
构件组已发布,包含两个错误修复。
错误修复
- 修复了两个问题,其中
FrameworkSQLiteOpenHelper
在初始化期间无法正确地从损坏的数据库或错误的迁移中恢复。 (b/111504749 和 b/111519144)