Sqlite

Library androidx.sqlite berisi antarmuka abstrak beserta implementasi dasar yang dapat digunakan untuk membuat library Anda sendiri yang mengakses SQLite.

Sebaiknya gunakan library Room, yang memberikan lapisan abstraksi di atas SQLite untuk memungkinkan akses database yang lebih andal sekaligus memanfaatkan seluruh kapabilitas SQLite.

Update Terbaru Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
30 Oktober 2024 2.4.0 - - 2.5.0-alpha11

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada SQLite, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.

Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:

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

Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.

Masukan

Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.

Versi 2.5

Versi 2.5.0-alpha11

30 Oktober 2024

androidx.sqlite:sqlite-*:2.5.0-alpha11 dirilis. Versi 2.5.0-alpha11 berisi commit ini.

Versi 2.5.0-alpha10

16 Oktober 2024

androidx.sqlite:sqlite-*:2.5.0-alpha10 dirilis. Versi 2.5.0-alpha10 berisi commit ini.

Perubahan API

  • Tambahkan SQLiteStatement.getColumnType() beserta berbagai konstanta hasil SQLITE_DATA_* untuk memungkinkan pengambilan jenis data kolom. (I1985c, b/369636251)

Versi 2.5.0-alpha09

2 Oktober 2024

androidx.sqlite:sqlite-*:2.5.0-alpha09 dirilis. Versi 2.5.0-alpha09 berisi commit ini.

Versi 2.5.0-alpha08

18 September 2024

androidx.sqlite:sqlite-*:2.5.0-alpha08 dirilis. Versi 2.5.0-alpha08 berisi commit ini.

Versi 2.5.0-alpha07

21 Agustus 2024

androidx.sqlite:sqlite-*:2.5.0-alpha07 dirilis. Versi 2.5.0-alpha07 berisi commit ini.

Fitur Baru

  • Menambahkan dukungan untuk Linux ARM 64 di target JVM / Desktop. (b/358045505)

Versi 2.5.0-alpha06

7 Agustus 2024

androidx.sqlite:sqlite-*:2.5.0-alpha06 dirilis. Versi 2.5.0-alpha06 berisi commit ini.

Fitur Baru

  • Menambahkan dukungan untuk target Multiplatform Kotlin linuxArm64 (I139d3, b/338268719)

Versi 2.5.0-alpha05

10 Juli 2024

androidx.sqlite:sqlite-*:2.5.0-alpha05 dirilis. Versi 2.5.0-alpha05 berisi commit ini.

Perubahan API

  • Mengganti nama SQLiteKt menjadi SQLite, dan BundledSQLiteKt menjadi BundledSQLite. (I8b501)

Versi 2.5.0-alpha04

12 Juni 2024

androidx.sqlite:sqlite-*:2.5.0-alpha04 dirilis. Versi 2.5.0-alpha04 berisi commit ini.

Perubahan API

  • Menambahkan API overload open() ke BundledSQLiteDriver untuk meneruskan flag terbuka saat membuka koneksi database. Berguna untuk membuka database dalam mode hanya baca atau menggunakan mode thread aman serialisasi, bukan mode multi-thread yang dipaketkan dengan SQLite yang dikompilasi (b/340949940).

Perbaikan Bug

  • Memperbaiki masalah penautan di Driver SQLite Paket yang akan menyebabkan UnsatisfiedLinkError ditampilkan karena simbol atom tidak ada di perangkat Android dengan ARM32. (b/341639198)
  • Memperbaiki masalah pada driver saat mengikat array byte dengan panjang nol ke kolom akan menyebabkan nilai null saat membaca darinya.

Versi 2.5.0-alpha03

29 Mei 2024

androidx.sqlite:sqlite-*:2.5.0-alpha03 dirilis. Versi 2.5.0-alpha03 berisi commit ini.

Perbaikan Bug

  • Memperbaiki masalah pada BundledSQLiteDriver saat database yang dibuat dengan database tersebut akan berisi karakter terminator null C. (b/340822359)

Versi 2.5.0-alpha02

14 Mei 2024

androidx.sqlite:sqlite-*:2.5.0-alpha02 dirilis tanpa perubahan signifikan sejak versi 2.5.0-alpha01 . Versi 2.5.0-alpha02 berisi commit ini.

Versi 2.5.0-alpha01

1 Mei 2024

androidx.sqlite:sqlite-*:2.5.0-alpha01 dirilis. Versi 2.5.0-alpha01 berisi commit ini.

Fitur Baru

  • Dukungan Multi-Platform Kotlin (KMP): Dengan rilis Room 2.7.0-alpha01 yang merupakan rilis pertama Room KMP, API SQLite yang memungkinkan Room menjadi KMP juga telah diperbarui. Paket andriodx.sqlite berisi tiga antarmuka yang menentukan API SQLite level rendah: SQLiteDriver, SQLiteConnection, dan SQLiteStatement. Artefak androidx.sqlite:sqlite-framework menawarkan implementasi antarmuka untuk Android dan iOS secara Native, sedangkan androidx.sqlite:sqlite-bundled menawarkan implementasi yang menggunakan SQLite yang dikompilasi dari sumber (juga dikenal sebagai “SQLite yang dipaketkan”). Untuk informasi selengkapnya tentang SQLite Driver API, lihat dokumentasi KMP SQLite resmi.

Versi 2.4

Versi 2.4.0

18 Oktober 2023

androidx.sqlite:sqlite:2.4.0, androidx.sqlite:sqlite-framework:2.4.0, dan androidx.sqlite:sqlite-ktx:2.4.0 dirilis. Versi 2.4.0 berisi commit ini.

Perubahan penting sejak versi 2.3.0

  • Berbagai perbaikan bug telah ditambahkan.

Versi 2.4.0-rc01

20 September 2023

androidx.sqlite:sqlite:2.4.0-rc01, androidx.sqlite:sqlite-framework:2.4.0-rc01, dan androidx.sqlite:sqlite-ktx:2.4.0-rc01 dirilis. Versi 2.4.0-rc01 berisi commit ini.

Versi 2.4.0-beta01

23 Agustus 2023

androidx.sqlite:sqlite:2.4.0-beta01, androidx.sqlite:sqlite-framework:2.4.0-beta01, dan androidx.sqlite:sqlite-ktx:2.4.0-beta01 dirilis. Versi 2.4.0-beta01 berisi commit ini.

Versi 2.4.0-alpha03

9 Agustus 2023

androidx.sqlite:sqlite:2.4.0-alpha03, androidx.sqlite:sqlite-framework:2.4.0-alpha03, dan androidx.sqlite:sqlite-ktx:2.4.0-alpha03 dirilis. Versi 2.4.0-alpha03 berisi commit ini.

Versi 2.4.0-alpha02

21 Juni 2023

androidx.sqlite:sqlite:2.4.0-alpha02, androidx.sqlite:sqlite-framework:2.4.0-alpha02, dan androidx.sqlite:sqlite-ktx:2.4.0-alpha02 dirilis tanpa perubahan. Versi 2.4.0-alpha02 berisi commit ini.

Versi 2.4.0-alpha01

22 Maret 2023

androidx.sqlite:sqlite:2.4.0-alpha01, androidx.sqlite:sqlite-framework:2.4.0-alpha01, dan androidx.sqlite:sqlite-ktx:2.4.0-alpha01 dirilis. Versi 2.4.0-alpha01 berisi commit ini.

Perbaikan Bug

  • Memperbaiki NullPointerException yang dapat terjadi di SupportSQLiteQueryBuilder. (5df8698)

Versi 2.3.1

Versi 2.3.1

22 Maret 2023

androidx.sqlite:sqlite:2.3.1, androidx.sqlite:sqlite-framework:2.3.1, dan androidx.sqlite:sqlite-ktx:2.3.1 dirilis. Versi 2.3.1 berisi commit ini.

Perbaikan Bug

  • Menghindari masalah framework saat kueri SQL tidak akan di-invalidate setelah perubahan skema selama migrasi. FrameworkSupportSQLiteOpenHelper kini akan menetapkan cache pernyataan SQL minimum selama migrasi untuk menghindari masalah tersebut. (0ad2a8f)
  • Memperbaiki masalah saat direktori cache mungkin tidak tersedia untuk digunakan untuk SupportSQLiteLock, sehingga File null harus ditangani dengan baik. (9d177dc)
  • Memperbaiki masalah saat attachedDbs tidak menampilkan daftar lengkap database yang dilampirkan. (5f008e1)

Versi 2.3.0

Versi 2.3.0

11 Januari 2023

androidx.sqlite:sqlite:2.3.0, androidx.sqlite:sqlite-framework:2.3.0, dan androidx.sqlite:sqlite-ktx:2.3.0 dirilis. Versi 2.3.0 berisi commit ini.

Perubahan penting sejak versi 2.2.0

  • Sumber androidx.sqlite grup library telah dikonversi dari Java ke Kotlin. Perlu diketahui bahwa karena androidx.sqlite memiliki beberapa anotasi nullability yang hilang, Anda mungkin mengalami error inkompatibilitas sumber jika sumber Anda berada di Kotlin dan kode tersebut menginferensi nullability yang salah. Selain itu, metode pengambil tertentu dikonversi menjadi properti yang memerlukan sintaksis akses properti pada file Kotlin. Laporkan bug jika ada inkompatibilitas yang signifikan. (b/240707042)
  • Menambahkan API di konfigurasi SupportSQLite's untuk memungkinkan kehilangan data selama mekanisme pemulihan. (I1b830, b/215592732)
  • Menambahkan API untuk kunci dan penggunaan multi-proses di level FrameworkSQLite*, untuk melindungi pembuatan dan migrasi database multi-proses untuk pertama kalinya. (Ied267, b/193182592)

Versi 2.3.0-rc01

7 Desember 2022

androidx.sqlite:sqlite:2.3.0-rc01, androidx.sqlite:sqlite-framework:2.3.0-rc01, dan androidx.sqlite:sqlite-ktx:2.3.0-rc01 dirilis. Versi 2.3.0-rc01 berisi commit ini.

Perbaikan Bug

  • Menyelesaikan masalah NPE di SupportSQLiteQueryBuilder untuk kolom nullable. (Ica8f5)

Versi 2.3.0-beta02

9 November 2022

androidx.sqlite:sqlite:2.3.0-beta02, androidx.sqlite:sqlite-framework:2.3.0-beta02, dan androidx.sqlite:sqlite-ktx:2.3.0-beta02 dirilis. Versi 2.3.0-beta02 berisi commit ini.

  • Memperbaiki berbagai API yang menggunakan argumen kueri dari invarian (Array<Any?>) hingga kontravarian (Array<out Any?>) agar cocok dengan perilaku array Java. (b/253531073)

Versi 2.3.0-beta01

5 Oktober 2022

androidx.sqlite:sqlite:2.3.0-beta01, androidx.sqlite:sqlite-framework:2.3.0-beta01, dan androidx.sqlite:sqlite-ktx:2.3.0-beta01 dirilis. Versi 2.3.0-beta01 berisi commit ini.

Perubahan API

  • Semua sumber android.sqlite telah dikonversi dari Java ke Kotlin. b/240707042.
  • Salah satu perubahan penting pada konversi adalah fungsi pengambil berikut telah menjadi properti:
    • Di SupportSQLiteDatabase:
    • attachedDbs
    • isDatabaseIntegrityOk
    • isDbLockedByCurrentThread
    • isOpen
    • isReadOnly
    • isWriteAheadLoggingEnabled
    • maximumSize
    • pageSize
    • path
    • version
    • Di SupportSQLiteOpenHelper:
    • databaseName
    • readableDatabase
    • writableDatabase

Versi 2.3.0-alpha05

24 Agustus 2022

androidx.sqlite:sqlite:2.3.0-alpha05, androidx.sqlite:sqlite-framework:2.3.0-alpha05, dan androidx.sqlite:sqlite-ktx:2.3.0-alpha05 dirilis. Versi 2.3.0-alpha05 berisi commit ini.

Perubahan API

  • Sumber androidx.sqlite grup library telah dikonversi dari Java ke Kotlin. Perlu diketahui bahwa karena androidx.sqlite memiliki beberapa anotasi nullability yang hilang, Anda mungkin mengalami error inkompatibilitas sumber jika sumber Anda berada di Kotlin dan kode tersebut menginferensi nullability yang salah. Laporkan bug jika ada inkompatibilitas yang signifikan. (b/240707042)

Versi 2.3.0-alpha04

10 Agustus 2022

androidx.sqlite:sqlite:2.3.0-alpha04, androidx.sqlite:sqlite-framework:2.3.0-alpha04, dan androidx.sqlite:sqlite-ktx:2.3.0-alpha04 dirilis. Versi 2.3.0-alpha04 berisi commit ini.

Perubahan API

  • Mengubah nullability (I29fbd)

Versi 2.3.0-alpha03

1 Juni 2022

androidx.sqlite:sqlite:2.3.0-alpha03, androidx.sqlite:sqlite-framework:2.3.0-alpha03, dan androidx.sqlite:sqlite-ktx:2.3.0-alpha03 dirilis. Versi 2.3.0-alpha03 berisi commit ini.

Perubahan API

  • Membatasi androidx.sqlite.ProcessLock. API diberi cakupan dan dibatasi ke fungsinya dalam androidx.sqlite dan tidak boleh digunakan sebagai kunci multi-proses untuk tujuan umum. (I1643f)

Versi 2.3.0-alpha02

6 April 2022

androidx.sqlite:sqlite:2.3.0-alpha02, androidx.sqlite:sqlite-framework:2.3.0-alpha02, dan androidx.sqlite:sqlite-ktx:2.3.0-alpha02 dirilis. Versi 2.3.0-alpha02 berisi commit ini.

  • Tidak ada perubahan signifikan sejak versi 2.3.0-alpha01

Versi 2.3.0-alpha01

23 Februari 2022

androidx.sqlite:sqlite:2.3.0-alpha01, androidx.sqlite:sqlite-framework:2.3.0-alpha01, dan androidx.sqlite:sqlite-ktx:2.3.0-alpha01 dirilis. Versi 2.3.0-alpha01 berisi commit ini.

Perubahan API

  • Menambahkan API di konfigurasi SupportSQLite untuk memungkinkan kehilangan data selama mekanisme pemulihan. (I1b830, b/215592732)
  • Menambahkan API untuk kunci dan penggunaan multi-proses di level FrameworkSQLite*, untuk melindungi pembuatan dan migrasi database multi-proses untuk pertama kalinya. (Ied267, b/193182592)

Versi 2.2.0

Versi 2.2.0

15 Desember 2021

androidx.sqlite:sqlite:2.2.0, androidx.sqlite:sqlite-framework:2.2.0, dan androidx.sqlite:sqlite-ktx:2.2.0 dirilis. Versi 2.2.0 berisi commit ini.

Perubahan penting sejak versi 2.1.0

Menambahkan metode default untuk execPerConnectionSQL() di SupportSQLiteDatabase.

Versi 2.2.0-rc01

1 Desember 2021

androidx.sqlite:sqlite:2.2.0-rc01, androidx.sqlite:sqlite-framework:2.2.0-rc01, dan androidx.sqlite:sqlite-ktx:2.2.0-rc01 dirilis. Versi 2.2.0-rc01 berisi commit ini.

Tidak ada perubahan signifikan sejak versi 2.2.0-beta01.

Versi 2.2.0-beta01

13 Oktober 2021

androidx.sqlite:sqlite:2.2.0-beta01, androidx.sqlite:sqlite-framework:2.2.0-beta01, dan androidx.sqlite:sqlite-ktx:2.2.0-beta01 dirilis. Versi 2.2.0-beta01 berisi commit ini.

  • Tidak ada perubahan dari versi alfa sebelumnya.

Versi 2.2.0-alpha02

21 Juli 2021

androidx.sqlite:sqlite:2.2.0-alpha02, androidx.sqlite:sqlite-framework:2.2.0-alpha02, dan androidx.sqlite:sqlite-ktx:2.2.0-alpha02 dirilis. Versi 2.2.0-alpha02 berisi commit ini.

Tidak ada perubahan signifikan sejak versi 2.2.0-alpha01. Rilis ini dilakukan agar sesuai dengan rilis Room 2.4.0-alpha04.

Versi 2.2.0-alpha01

16 Juni 2021

androidx.sqlite:sqlite:2.2.0-alpha01, androidx.sqlite:sqlite-framework:2.2.0-alpha01, dan androidx.sqlite:sqlite-ktx:2.2.0-alpha01 dirilis. Versi 2.2.0-alpha01 berisi commit ini.

Perubahan API

  • Menambahkan metode default untuk execPerConnectionSQL() di SupportSQLiteDatabase (I86326, b/172270145)

Versi 2.1.0

Versi 2.1.0

22 Januari 2020

androidx.sqlite:sqlite:2.1.0, androidx.sqlite:sqlite-framework:2.1.0, dan androidx.sqlite:sqlite-ktx:2.1.0 dirilis tanpa perubahan sejak versi 2.1.0-rc01. Versi 2.1.0 berisi commit ini.

Perubahan penting sejak versi 2.0.1

  • Dukungan untuk useNoBackupDirectory yang dapat digunakan untuk menunjukkan bahwa database harus dibuat dalam direktori tanpa cadangan saat menggunakan SupportSQLiteOpenHelper.

Versi 2.1.0-rc01

8 Januari 2020

androidx.sqlite:sqlite-*:2.1.0-rc01 dirilis. Versi 2.1.0-rc01 berisi commit ini.

Rilis ini sama persis dengan 2.1.0-beta01.

Versi 2.1.0-beta01

4 Desember 2019

androidx.sqlite:sqlite:2.1.0-beta01, androidx.sqlite:sqlite-framework:2.1.0-beta01, dan androidx.sqlite:sqlite-ktx:2.1.0-beta01 dirilis tanpa perubahan sejak versi 2.1.0-alpha01. Versi 2.1.0-beta01 berisi commit ini.

Versi 2.1.0-alpha01

7 November 2019

androidx.sqlite:sqlite:2.1.0-alpha01, androidx.sqlite:sqlite-framework:2.1.0-alpha01, dan androidx.sqlite:sqlite-ktx:2.1.0-alpha01 dirilis. Versi 2.1.0-alpha01 berisi commit ini.

Perubahan API

  • Menambahkan properti baru ke SupportSQLiteOpenHelper.Configuration, yang disebut useNoBackupDirectory, untuk menunjukkan bahwa database yang berbasis file harus dibuat dan ditempatkan dari direktori tanpa cadangan.

Versi 2.0.1

Versi 2.0.1

13 Maret 2019

Versi 2.0.1 dari grup artefak androidx.sqlite dirilis dengan dua perbaikan bug.

Perbaikan Bug

  • Memperbaiki dua masalah yang menyebabkan FrameworkSQLiteOpenHelper tidak dapat dipulihkan dengan baik dari database yang rusak atau migrasi yang bermasalah selama inisialisasi. (b/111504749 dan b/111519144)