Sqlite

Thư viện 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 30 tháng 10 năm 2024 2.4.0 - - 2.5.0-alpha11

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.

Báo lỗi mới

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-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ành SQLiteBundledSQLiteKt thành BundledSQLite. (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ào BundledSQLiteDriver để truyền các 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 được đóng gói SQLite được biên dịch bằng (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 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ằng BundledSQLiteDriver 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ợ đa nền tảng Kotlin (KMP): Với bản phát hành Room 2.7.0-alpha01 là 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ói andriodx.sqlite chứa ba giao diện xác định các API SQLite cấp thấp: SQLiteDriver, SQLiteConnectionSQLiteStatement. Cấu phần phần mềm androidx.sqlite:sqlite-framework cung cấp cách triển khai giao diện cho Android và iOS gốc, trong khi androidx.sqlite:sqlite-bundled cung cấp cách triển khai sử dụng SQLite đượ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.0androidx.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-rc01androidx.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-beta01androidx.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-alpha03androidx.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-alpha02androidx.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-alpha01androidx.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 trong SupportSQLiteQueryBuilder. (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.1androidx.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. Giờ đây, FrameworkSupportSQLiteOpenHelper sẽ thiết lập bộ nhớ đệm tối thiểu cho câu lệnh SQL trong quá trình di chuyển để tránh sự cố 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.0androidx.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-rc01androidx.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-beta02androidx.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-beta01androidx.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

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-alpha05androidx.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-alpha04androidx.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-alpha03androidx.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 trong androidx.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-alpha02androidx.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-alpha01androidx.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.0androidx.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-rc01androidx.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-beta01androidx.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-alpha02androidx.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-alpha01androidx.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.0androidx.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ụng SupportSQLiteOpenHelper.

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-beta01androidx.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-alpha01androidx.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)