Sqlite
androidx.sqlite
chứa các lớp giao tiếp trừu tượng cùng với các hàm triển khai cơ bản giúp bạn tự xây dựng những thư viện liên kết với SQLite.
Bạn nên cân nhắc sử dụng thư viện Room. Thư viện này cung cấp một lớp trừu tượng thông qua SQLite cho phép truy cập vào cơ sở dữ liệu hiệu quả hơn, đồng thời khai thác tối đa sức mạnh của SQLite.
Bản cập nhật mới nhất | Bản phát hành ổn định | Bản phát hành dùng thử | Bản phát hành beta | Bản phát hành alpha |
---|---|---|---|---|
Ngày 11 tháng 12 năm 2024 | 2.4.0 | - | - | 2.5.0-alpha12 |
Khai báo phần phụ thuộc
Để thêm thành phần phụ thuộc vào SQLite, bạn phải thêm kho lưu trữ Google Maven vào dự án. Đọc nội dung Kho lưu trữ Maven của Google để biết thêm thông tin.
Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle
cho ứng dụng hoặc mô-đun:
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") }
Để biết thêm thông tin về các phần phụ thuộc, hãy xem bài viết Thêm phần phụ thuộc vào bản dựng.
Ý kiến phản hồi
Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.
Xem tài liệu về công cụ theo dõi lỗi để biết thêm thông tin.
Phiên bản 2.5
Phiên bản 2.5.0-alpha12
Ngày 11 tháng 12 năm 2024
Phát hành androidx.sqlite:sqlite-*:2.5.0-alpha12
. Phiên bản 2.5.0-alpha12 bao gồm các thay đổi sau.
Phiên bản 2.5.0-alpha11
Ngày 30 tháng 10 năm 2024
Phát hành androidx.sqlite:sqlite-*:2.5.0-alpha11
. Phiên bản 2.5.0-alpha11 bao gồm các thay đổi sau.
Phiên bản 2.5.0-alpha10
Ngày 16 tháng 10 năm 2024
Phát hành androidx.sqlite:sqlite-*:2.5.0-alpha10
. Phiên bản 2.5.0-alpha10 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm
SQLiteStatement.getColumnType()
cùng với nhiều hằng kết quảSQLITE_DATA_*
để cho phép truy xuất loại dữ liệu của một cột. (I1985c, b/369636251)
Phiên bản 2.5.0-alpha09
Ngày 2 tháng 10 năm 2024
Phát hành androidx.sqlite:sqlite-*:2.5.0-alpha09
. Phiên bản 2.5.0-alpha09 bao gồm các thay đổi sau.
Phiên bản 2.5.0-alpha08
Ngày 18 tháng 9 năm 2024
Phát hành androidx.sqlite:sqlite-*:2.5.0-alpha08
. Phiên bản 2.5.0-alpha08 bao gồm các thay đổi sau.
Phiên bản 2.5.0-alpha07
Ngày 21 tháng 8 năm 2024
Phát hành androidx.sqlite:sqlite-*:2.5.0-alpha07
. Phiên bản 2.5.0-alpha07 bao gồm các thay đổi sau.
Tính năng mới
- Thêm tính năng hỗ trợ Linux ARM 64 trong các mục tiêu JVM / máy tính. (b/358045505)
Phiên bản 2.5.0-alpha06
Ngày 7 tháng 8 năm 2024
Phát hành androidx.sqlite:sqlite-*:2.5.0-alpha06
. Phiên bản 2.5.0-alpha06 bao gồm các thay đổi sau.
Tính năng mới
- Thêm tính năng hỗ trợ cho mục tiêu Kotlin Multiplatform
linuxArm64
(I139d3, b/338268719)
Phiên bản 2.5.0-alpha05
Ngày 10 tháng 7 năm 2024
Phát hành androidx.sqlite:sqlite-*:2.5.0-alpha05
. Phiên bản 2.5.0-alpha05 bao gồm các thay đổi sau.
Thay đổi về API
- Đổi tên
SQLiteKt
thànhSQLite
vàBundledSQLiteKt
thànhBundledSQLite
. (I8b501)
Phiên bản 2.5.0-alpha04
Ngày 12 tháng 6 năm 2024
Phát hành androidx.sqlite:sqlite-*:2.5.0-alpha04
. Phiên bản 2.5.0-alpha04 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm API nạp chồng
open()
vàoBundledSQLiteDriver
để truyền cờ mở khi mở kết nối cơ sở dữ liệu. Hữu ích khi mở cơ sở dữ liệu ở chế độ chỉ có thể đọc hoặc sử dụng chế độ an toàn theo chuỗi luồng thay vì chế độ nhiều luồng đi kèm với SQLite được biên dịch (b/340949940).
Sửa lỗi
- Khắc phục vấn đề liên kết trong Trình điều khiển SQLite đi kèm, khiến
UnsatisfiedLinkError
bị gửi do thiếu các biểu tượng nguyên tử trong các thiết bị Android có ARM32. (b/341639198) - Khắc phục vấn đề trong trình điều khiển khi liên kết một mảng byte có độ dài bằng 0 vào một cột sẽ dẫn đến giá trị rỗng khi đọc từ cột đó.
Phiên bản 2.5.0-alpha03
Ngày 29 tháng 5 năm 2024
Phát hành androidx.sqlite:sqlite-*:2.5.0-alpha03
. Phiên bản 2.5.0-alpha03 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục vấn đề với
BundledSQLiteDriver
, trong đó các cơ sở dữ liệu được tạo bằngBundledSQLiteDriver
sẽ chứa ký tự kết thúc rỗng C. (b/340822359)
Phiên bản 2.5.0-alpha02
Ngày 14 tháng 5 năm 2024
Phát hành androidx.sqlite:sqlite-*:2.5.0-alpha02
mà không có thay đổi đáng kể nào kể từ phiên bản 2.5.0-alpha01 . Phiên bản 2.5.0-alpha02 bao gồm các thay đổi sau.
Phiên bản 2.5.0-alpha01
Ngày 1 tháng 5 năm 2024
Phát hành androidx.sqlite:sqlite-*:2.5.0-alpha01
. Phiên bản 2.5.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
- Hỗ trợ Kotlin đa nền tảng (KMP): Với bản phát hành Room 2.7.0-alpha01 (bản phát hành đầu tiên của Room KMP), các API
SQLite
cho phép Room trở thành KMP cũng đã được cập nhật. Góiandriodx.sqlite
chứa ba giao diện xác định các API SQLite cấp thấp:SQLiteDriver
,SQLiteConnection
vàSQLiteStatement
. Cấu phần phần mềmandroidx.sqlite:sqlite-framework
cung cấp cách triển khai giao diện cho Android và iOS gốc, trong khiandroidx.sqlite:sqlite-bundled
cung cấp cách triển khai sử dụngSQLite
được biên dịch từ nguồn (còn gọi là "SQLite đi kèm"). Để biết thêm thông tin về API Trình điều khiển SQLite, hãy tham khảo tài liệu chính thức về KMP SQLite.
Phiên bản 2.4
Phiên bản 2.4.0
Ngày 18 tháng 10 năm 2023
Phát hành androidx.sqlite:sqlite:2.4.0
, androidx.sqlite:sqlite-framework:2.4.0
và androidx.sqlite:sqlite-ktx:2.4.0
. Phiên bản 2.4.0 bao gồm các thay đổi sau.
Thay đổi quan trọng kể từ phiên bản 2.3.0
- Thêm nhiều bản sửa lỗi.
Phiên bản 2.4.0-rc01
Ngày 20 tháng 9 năm 2023
Phát hành androidx.sqlite:sqlite:2.4.0-rc01
, androidx.sqlite:sqlite-framework:2.4.0-rc01
và androidx.sqlite:sqlite-ktx:2.4.0-rc01
. Phiên bản 2.4.0-rc01 bao gồm các thay đổi sau.
Phiên bản 2.4.0-beta01
Ngày 23 tháng 8 năm 2023
Phát hành androidx.sqlite:sqlite:2.4.0-beta01
, androidx.sqlite:sqlite-framework:2.4.0-beta01
và androidx.sqlite:sqlite-ktx:2.4.0-beta01
. Phiên bản 2.4.0-beta01 bao gồm các thay đổi sau.
Phiên bản 2.4.0-alpha03
Ngày 9 tháng 8 năm 2023
Phát hành androidx.sqlite:sqlite:2.4.0-alpha03
, androidx.sqlite:sqlite-framework:2.4.0-alpha03
và androidx.sqlite:sqlite-ktx:2.4.0-alpha03
. Phiên bản 2.4.0-alpha03 bao gồm các thay đổi sau.
Phiên bản 2.4.0-alpha02
Ngày 21 tháng 6 năm 2023
Phát hành androidx.sqlite:sqlite:2.4.0-alpha02
, androidx.sqlite:sqlite-framework:2.4.0-alpha02
và androidx.sqlite:sqlite-ktx:2.4.0-alpha02
mà không có sự thay đổi nào. Phiên bản 2.4.0-alpha02 bao gồm các thay đổi sau.
Phiên bản 2.4.0-alpha01
Ngày 22 tháng 3 năm 2023
Phát hành androidx.sqlite:sqlite:2.4.0-alpha01
, androidx.sqlite:sqlite-framework:2.4.0-alpha01
và androidx.sqlite:sqlite-ktx:2.4.0-alpha01
. Phiên bản 2.4.0-alpha01 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục lỗi
NullPointerException
có thể xảy ra trongSupportSQLiteQueryBuilder
. (5df8698)
Phiên bản 2.3.1
Phiên bản 2.3.1
Ngày 22 tháng 3 năm 2023
Phát hành androidx.sqlite:sqlite:2.3.1
, androidx.sqlite:sqlite-framework:2.3.1
và androidx.sqlite:sqlite-ktx:2.3.1
. Phiên bản 2.3.1 bao gồm các thay đổi sau.
Sửa lỗi
- Tránh vấn đề về khung trong đó các truy vấn SQL sẽ không bị vô hiệu sau khi thay đổi giản đồ trong quá trình di chuyển.
FrameworkSupportSQLiteOpenHelper
hiện sẽ đặt bộ nhớ đệm câu lệnh SQL tối thiểu trong quá trình di chuyển để tránh vấn đề này. (0ad2a8f) - Khắc phục vấn đề thư mục bộ nhớ đệm có thể không dùng được cho
SupportSQLiteLock
, do đó, bạn phải xử lý một Tệp rỗng một cách linh hoạt. (9d177dc) - Khắc phục lỗi
attachedDbs
không trả về danh sách đầy đủ các cơ sở dữ liệu đính kèm. (5f008e1)
Phiên bản 2.3.0
Phiên bản 2.3.0
Ngày 11 tháng 1 năm 2023
Phát hành androidx.sqlite:sqlite:2.3.0
, androidx.sqlite:sqlite-framework:2.3.0
và androidx.sqlite:sqlite-ktx:2.3.0
. Phiên bản 2.3.0 bao gồm các thay đổi sau.
Các thay đổi quan trọng kể từ phiên bản 2.2.0
- Các nguồn của nhóm thư viện
androidx.sqlite
đã được chuyển đổi từ Java sang Kotlin. Xin lưu ý rằng vìandroidx.sqlite
thiếu một số chú thích về tính chất rỗng, nên có thể bạn sẽ gặp lỗi không tương thích với nguồn nếu các nguồn của bạn nằm trong Kotlin và mã này suy luận tính chất rỗng không chính xác. Hơn nữa, một số phương thức getter nhất định được chuyển đổi thành các thuộc tính yêu cầu cú pháp truy cập vào thuộc tính trên các tệp Kotlin. Vui lòng báo cáo lỗi nếu có bất kỳ sự cố không tương thích đáng kể nào. (b/240707042) - Thêm một API trong cấu hình
SupportSQLite's
để cho phép thất thoát dữ liệu trong cơ chế khôi phục. (I1b830, b/215592732) - Thêm API để khoá và sử dụng đa tiến trình ở cấp
FrameworkSQLite*
nhằm đảm bảo việc khởi tạo và di chuyển cơ sở dữ liệu lần đầu tiên theo nhiều tiến trình. (Ied267, b/193182592)
Phiên bản 2.3.0-rc01
Ngày 7 tháng 12 năm 2022
Phát hành androidx.sqlite:sqlite:2.3.0-rc01
, androidx.sqlite:sqlite-framework:2.3.0-rc01
và androidx.sqlite:sqlite-ktx:2.3.0-rc01
. Phiên bản 2.3.0-rc01 bao gồm các thay đổi sau.
Sửa lỗi
- Giải quyết vấn đề NPE trong
SupportSQLiteQueryBuilder
cho các cột có tính chất rỗng. (Ica8f5)
Phiên bản 2.3.0-beta02
Ngày 9 tháng 11 năm 2022
Phát hành androidx.sqlite:sqlite:2.3.0-beta02
, androidx.sqlite:sqlite-framework:2.3.0-beta02
và androidx.sqlite:sqlite-ktx:2.3.0-beta02
. Phiên bản 2.3.0-beta02 bao gồm các thay đổi sau.
- Khắc phục nhiều API lấy đối số truy vấn từ mảng bất biến (
Array<Any?>
) thành mảng phản biến (Array<out Any?>
) để khớp với hành vi mảng của Java. (b/253531073)
Phiên bản 2.3.0-beta01
Ngày 5 tháng 10 năm 2022
Phát hành androidx.sqlite:sqlite:2.3.0-beta01
, androidx.sqlite:sqlite-framework:2.3.0-beta01
và androidx.sqlite:sqlite-ktx:2.3.0-beta01
. Phiên bản 2.3.0-beta01 bao gồm các thay đổi sau.
Các thay đổi về API
- Tất cả các nguồn android.sqlite đã được chuyển đổi từ Java sang Kotlin. b/240707042
- Một sự thay đổi đáng chú ý của lượt chuyển đổi là các hàm getter sau đây đã trở thành thuộc tính:
- Trong
SupportSQLiteDatabase
: attachedDbs
isDatabaseIntegrityOk
isDbLockedByCurrentThread
isOpen
isReadOnly
isWriteAheadLoggingEnabled
maximumSize
pageSize
path
version
- Trong
SupportSQLiteOpenHelper
: databaseName
readableDatabase
writableDatabase
- Trong
Phiên bản 2.3.0-alpha05
Ngày 24 tháng 8 năm 2022
Phát hành androidx.sqlite:sqlite:2.3.0-alpha05
, androidx.sqlite:sqlite-framework:2.3.0-alpha05
và androidx.sqlite:sqlite-ktx:2.3.0-alpha05
. Phiên bản 2.3.0-alpha05 bao gồm các thay đổi sau.
Các thay đổi về API
- Các nguồn nhóm thư viện androidx.sqlite đã được chuyển đổi từ Java sang Kotlin. Xin lưu ý rằng vì androidx.sqlite bị thiếu một số chú thích về tính chất rỗng, nên có thể bạn sẽ gặp lỗi không tương thích với nguồn nếu các nguồn của bạn nằm trong Kotlin và mã này suy luận tính chất rỗng không chính xác. Vui lòng báo cáo lỗi nếu có bất kỳ sự không tương thích đáng kể nào. (b/240707042)
Phiên bản 2.3.0-alpha04
Ngày 10 tháng 8 năm 2022
Phát hành androidx.sqlite:sqlite:2.3.0-alpha04
, androidx.sqlite:sqlite-framework:2.3.0-alpha04
và androidx.sqlite:sqlite-ktx:2.3.0-alpha04
. Phiên bản 2.3.0-alpha04 bao gồm các thay đổi sau.
Các thay đổi về API
- Cập nhật tính chất rỗng (I29fbd)
Phiên bản 2.3.0-alpha03
Ngày 1 tháng 6 năm 2022
Phát hành androidx.sqlite:sqlite:2.3.0-alpha03
, androidx.sqlite:sqlite-framework:2.3.0-alpha03
và androidx.sqlite:sqlite-ktx:2.3.0-alpha03
. Phiên bản 2.3.0-alpha03 bao gồm các thay đổi sau.
Các thay đổi về API
- Đặt
androidx.sqlite.ProcessLock
ở chế độ hạn chế. API này nằm trong phạm vi, giới hạn hàm bên trongandroidx.sqlite
và không được dùng làm khoá đa quy trình có chung mục đích. (I1643f)
Phiên bản 2.3.0-alpha02
Ngày 6 tháng 4 năm 2022
Phát hành androidx.sqlite:sqlite:2.3.0-alpha02
, androidx.sqlite:sqlite-framework:2.3.0-alpha02
và androidx.sqlite:sqlite-ktx:2.3.0-alpha02
. Phiên bản 2.3.0-alpha02 bao gồm các thay đổi sau.
- Không có thay đổi đáng kể nào kể từ phiên bản 2.3.0-alpha01.
Phiên bản 2.3.0-alpha01
Ngày 23 tháng 2 năm 2022
Phát hành androidx.sqlite:sqlite:2.3.0-alpha01
, androidx.sqlite:sqlite-framework:2.3.0-alpha01
và androidx.sqlite:sqlite-ktx:2.3.0-alpha01
. Phiên bản 2.3.0-alpha01 bao gồm các thay đổi sau.
Các thay đổi về API
- Thêm một API vào cấu hình của SupportSQLite nhằm cho phép thất thoát dữ liệu xảy ra trong cơ chế khôi phục. (I1b830, b/215592732)
- Thêm API để khoá và sử dụng đa tiến trình ở cấp FrameworkSQLite* nhằm đảm bảo việc khởi tạo và di chuyển cơ sở dữ liệu lần đầu tiên theo nhiều tiến trình. (Ied267, b/193182592)
Phiên bản 2.2.0
Phiên bản 2.2.0
Ngày 15 tháng 12 năm 2021
Phát hành androidx.sqlite:sqlite:2.2.0
, androidx.sqlite:sqlite-framework:2.2.0
và androidx.sqlite:sqlite-ktx:2.2.0
. Phiên bản 2.2.0 bao gồm các thay đổi sau.
Thay đổi quan trọng kể từ phiên bản 2.1.0
Thêm phương thức mặc định cho execPerConnectionSQL()
trong SupportSQLiteDatabase
.
Phiên bản 2.2.0-rc01
Ngày 1 tháng 12 năm 2021
Phát hành androidx.sqlite:sqlite:2.2.0-rc01
, androidx.sqlite:sqlite-framework:2.2.0-rc01
và androidx.sqlite:sqlite-ktx:2.2.0-rc01
. Phiên bản 2.2.0-rc01 bao gồm các thay đổi sau.
Không có thay đổi đáng kể nào từ phiên bản 2.2.0-beta01.
Phiên bản 2.2.0-beta01
Ngày 13 tháng 10 năm 2021
Phát hành androidx.sqlite:sqlite:2.2.0-beta01
, androidx.sqlite:sqlite-framework:2.2.0-beta01
và androidx.sqlite:sqlite-ktx:2.2.0-beta01
. Phiên bản 2.2.0-beta01 bao gồm các thay đổi sau.
- Không có thay đổi nào từ phiên bản alpha trước đó.
Phiên bản 2.2.0-alpha02
Ngày 21 tháng 7 năm 2021
Phát hành androidx.sqlite:sqlite:2.2.0-alpha02
, androidx.sqlite:sqlite-framework:2.2.0-alpha02
và androidx.sqlite:sqlite-ktx:2.2.0-alpha02
. Phiên bản 2.2.0-alpha02 bao gồm các thay đổi sau.
Không có thay đổi đáng kể nào kể từ phiên bản 2.2.0-alpha01. Bản phát hành này chỉ tương thích với bản phát hành Room 2.4.0-alpha04
.
Phiên bản 2.2.0-alpha01
Ngày 16 tháng 6 năm 2021
Phát hành androidx.sqlite:sqlite:2.2.0-alpha01
, androidx.sqlite:sqlite-framework:2.2.0-alpha01
và androidx.sqlite:sqlite-ktx:2.2.0-alpha01
. Phiên bản 2.2.0-alpha01 bao gồm các thay đổi sau.
Các thay đổi về API
- Thêm phương thức mặc định cho
execPerConnectionSQL()
trong SupportSQLiteInfrastructure (I86326, b/172270145)
Phiên bản 2.1.0
Phiên bản 2.1.0
Ngày 22 tháng 1 năm 2020
Các phiên bản androidx.sqlite:sqlite:2.1.0
, androidx.sqlite:sqlite-framework:2.1.0
và androidx.sqlite:sqlite-ktx:2.1.0
không có thay đổi nào so với phiên bản 2.1.0-rc01
. Phiên bản 2.1.0 bao gồm các thay đổi sau.
Những thay đổi quan trọng kể từ phiên bản 2.0.1
- Tính năng hỗ trợ
useNoBackupDirectory
có thể được dùng để báo hiệu rằng cơ sở dữ liệu cần được tạo trong thư mục không sao lưu khi sử dụngSupportSQLiteOpenHelper
.
Phiên bản 2.1.0-rc01
Ngày 8 tháng 1 năm 2020
Phát hành phiên bản androidx.sqlite:sqlite-*:2.1.0-rc01
. Phiên bản 2.1.0-rc01 bao gồm các thay đổi sau.
Bản phát hành này giống hệt với 2.1.0-beta01
.
Phiên bản 2.1.0-beta01
Ngày 4 tháng 12 năm 2019
Các phiên bản androidx.sqlite:sqlite:2.1.0-beta01
, androidx.sqlite:sqlite-framework:2.1.0-beta01
và androidx.sqlite:sqlite-ktx:2.1.0-beta01
không có thay đổi nào so với phiên bản 2.1.0-alpha01
. Phiên bản 2.1.0-beta01 bao gồm các thay đổi sau.
Phiên bản 2.1.0-alpha01
Ngày 7 tháng 11 năm 2019
Phát hành androidx.sqlite:sqlite:2.1.0-alpha01
, androidx.sqlite:sqlite-framework:2.1.0-alpha01
và androidx.sqlite:sqlite-ktx:2.1.0-alpha01
. Phiên bản 2.1.0-alpha01 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm thuộc tính mới cho lớp
SupportSQLiteOpenHelper.Configuration
có tên làuseNoBackupDirectory
để thông báo rằng cơ sở dữ liệu dựa trên tệp cần được khởi tạo và chứa trong thư mục không sao lưu.
Phiên bản 2.0.1
Phiên bản 2.0.1
Ngày 13 tháng 3 năm 2019
Phát hành phiên bản 2.0.1 của nhóm cấu phần phần mềm androidx.sqlite
cùng với 2 bản sửa lỗi.
Sửa lỗi
- Khắc phục 2 vấn đề khiến
FrameworkSQLiteOpenHelper
không thể khôi phục đúng cách từ một cơ sở dữ liệu bị hỏng hoặc quá trình di chuyển không hợp lệ trong khi khởi động. (b/111504749 and b/111519144)