Sqlite

Biblioteka androidx.sqlite zawiera abstrakcyjne interfejsy oraz podstawowe możesz użyć do tworzenia własnych bibliotek wykorzystujących dostęp SQLite.

Rozważ użycie Room, która zapewnia warstwa abstrakcji na SQLite, aby umożliwić mocniejszy dostęp do bazy danych a jednocześnie wykorzystać pełne możliwości SQLite.

Najnowsza aktualizacja Wersja stabilna Kandydat do wydania Wersja Beta Wydanie alfa
21 sierpnia 2024 r. 2.4.0 - - 2.5.0-alfa07

Deklarowanie zależności

Aby dodać zależność od SQLite, musisz dodać repozytorium Google Maven do swojego w projektach AI. Zapoznaj się z repozytorium Google Maven. .

Dodaj zależności artefaktów, których potrzebujesz w pliku build.gradle aplikacji lub modułu:

Odlotowe

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

Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.

Opinia

Twoja opinia pomoże nam ulepszyć Jetpack. Daj nam znać, jeśli odkryjesz nowe problemy jak ulepszyć tę bibliotekę. Przyjrzyj się istniejące problemy w tej bibliotece, zanim utworzysz nową. Możesz zagłosować nad istniejącym problemem przez klikając przycisk gwiazdki.

Tworzenie nowego numeru

Zobacz dokumentację narzędzia Issue Tracker. .

Wersja 2.5

Wersja 2.5.0-alpha07

21 sierpnia 2024 r.

Usługa androidx.sqlite:sqlite-*:2.5.0-alpha07 została zwolniona. Wersja 2.5.0-alfa07 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodano obsługę procesorów ARM 64 w systemie Linux w środowiskach docelowych JVM / na komputery. (B/358045505)

Wersja 2.5.0-alpha06

7 sierpnia 2024 r.

Usługa androidx.sqlite:sqlite-*:2.5.0-alpha06 została zwolniona. Wersja 2.5.0-alfa06 zawiera te zatwierdzenia.

Nowe funkcje

Wersja 2.5.0-alpha05

10 lipca 2024 r.

Usługa androidx.sqlite:sqlite-*:2.5.0-alpha05 została zwolniona. Wersja 2.5.0-alfa05 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Nazwa SQLiteKt została zmieniona na SQLite, a BundledSQLiteKt na BundledSQLite. (I8B501)

Wersja 2.5.0-alpha04

12 czerwca 2024 r.

Usługa androidx.sqlite:sqlite-*:2.5.0-alpha04 została zwolniona. Wersja 2.5.0-alfa04 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Do BundledSQLiteDriver dodano interfejs API przeciążenia open(), aby przekazywać otwarte flagi przy otwieraniu połączenia z bazą danych. Ta opcja jest przydatna podczas otwierania bazy danych w trybie tylko do odczytu lub przy korzystaniu z trybu bezpiecznego w serializowanych wątkach zamiast kompilowanego zestawu SQLite z trybem wielowątkowym (b/340949940).

Poprawki błędów

  • Rozwiązaliśmy problem z łączeniem w dołączonym sterowniku SQLite, który powodował zgłaszanie żądania UnsatisfiedLinkError z powodu brakujących symboli atomowych na urządzeniach z Androidem z procesorem ARM32. (b/341639198)
  • Naprawiono błąd w sterownikach, który powodował, że powiązanie tablicy bajtów o zerowej długości z kolumną prowadziło do wartości null przy odczytywaniu z tej kolumny.

Wersja 2.5.0-alpha03

29 maja 2024 r.

Usługa androidx.sqlite:sqlite-*:2.5.0-alpha03 została zwolniona. Wersja 2.5.0-alfa03 zawiera te zatwierdzenia.

Poprawki błędów

  • Naprawiono błąd z BundledSQLiteDriver, który powodował, że bazy danych utworzone przy jego użyciu zawierały znak zakończenia C o wartości null. (b/340822359)

Wersja 2.5.0-alpha02

14 maja 2024 r.

Od wersji 2.5.0-alfa01 pakiet androidx.sqlite:sqlite-*:2.5.0-alpha02 został udostępniony bez znaczących zmian . Wersja 2.5.0-alfa02 zawiera te zatwierdzenia.

Wersja 2.5.0-alpha01

1 maja 2024 r.

Usługa androidx.sqlite:sqlite-*:2.5.0-alpha01 została zwolniona. Wersja 2.5.0-alfa01 zawiera te zatwierdzenia.

Nowe funkcje

  • Obsługa wielu platform (KMP): wraz z udostępnieniem pokoju 2.7.0-alfa01, który jest pierwszą wersją narzędzia KMP, zaktualizowaliśmy też interfejsy API SQLite umożliwiające obsługę pokoju za pomocą KMP. Pakiet andriodx.sqlite zawiera 3 interfejsy definiujące interfejsy API SQLite niskiego poziomu: SQLiteDriver, SQLiteConnection i SQLiteStatement. Artefakt androidx.sqlite:sqlite-framework oferuje natywną implementację interfejsów na Androida i iOS, a androidx.sqlite:sqlite-bundled oferuje implementację, która korzysta z mechanizmu SQLite skompilowanego ze źródła (nazywanego też „pakietem SQLite”). Więcej informacji o interfejsie SQLite Driver API znajdziesz w oficjalnej dokumentacji SQLite KMP.

Wersja 2.4

Wersja 2.4.0

18 października 2023 r.

androidx.sqlite:sqlite:2.4.0, androidx.sqlite:sqlite-framework:2.4.0 i androidx.sqlite:sqlite-ktx:2.4.0 zostały udostępnione. Wersja 2.4.0 zawiera te zatwierdzenia.

Ważne zmiany wprowadzone od wersji 2.3.0

  • Wprowadziliśmy różne poprawki błędów.

Wersja 2.4.0-rc01

20 września 2023 r.

androidx.sqlite:sqlite:2.4.0-rc01, androidx.sqlite:sqlite-framework:2.4.0-rc01 i androidx.sqlite:sqlite-ktx:2.4.0-rc01 zostały udostępnione. Wersja 2.4.0-rc01 zawiera te zatwierdzenia.

Wersja 2.4.0-beta01

23 sierpnia 2023 r.

androidx.sqlite:sqlite:2.4.0-beta01, androidx.sqlite:sqlite-framework:2.4.0-beta01 i androidx.sqlite:sqlite-ktx:2.4.0-beta01 zostały udostępnione. Wersja 2.4.0-beta01 zawiera te zatwierdzenia.

Wersja 2.4.0-alpha03

9 sierpnia 2023 r.

androidx.sqlite:sqlite:2.4.0-alpha03, androidx.sqlite:sqlite-framework:2.4.0-alpha03 i androidx.sqlite:sqlite-ktx:2.4.0-alpha03 zostały udostępnione. Wersja 2.4.0-alfa03 zawiera te zatwierdzenia.

Wersja 2.4.0-alpha02

21 czerwca 2023 r.

androidx.sqlite:sqlite:2.4.0-alpha02, androidx.sqlite:sqlite-framework:2.4.0-alpha02 i androidx.sqlite:sqlite-ktx:2.4.0-alpha02 zostały udostępnione bez zmian. Wersja 2.4.0-alfa02 zawiera te zatwierdzenia.

Wersja 2.4.0-alpha01

22 marca 2023 r.

androidx.sqlite:sqlite:2.4.0-alpha01, androidx.sqlite:sqlite-framework:2.4.0-alpha01 i androidx.sqlite:sqlite-ktx:2.4.0-alpha01 zostały udostępnione. Wersja 2.4.0-alfa01 zawiera te zatwierdzenia.

Poprawki błędów

  • Rozwiązaliśmy problem (NullPointerException), który mógł wystąpić w przypadku: SupportSQLiteQueryBuilder. (5Df8698)

Wersja 2.3.1

Wersja 2.3.1

22 marca 2023 r.

androidx.sqlite:sqlite:2.3.1, androidx.sqlite:sqlite-framework:2.3.1 i androidx.sqlite:sqlite-ktx:2.3.1 zostały udostępnione. Wersja 2.3.1 zawiera te zatwierdzenia.

Poprawki błędów

  • Unikaj problemu ze strukturą, w którym zapytania SQL nie zostają unieważnione po zmianie schematu podczas migracji. Aby uniknąć tego problemu, FrameworkSupportSQLiteOpenHelper będzie teraz ustawiać minimalną pamięć podręczną instrukcji SQL podczas migracji. (0ad2a8f).
  • Rozwiązaliśmy problem, który powodował, że katalog pamięci podręcznej mógł nie być dostępny dla SupportSQLiteLock, dlatego plik o wartości null musi być obsługiwany w sposób płynny. (9d177dc)
  • Rozwiązaliśmy problem, który powodował, że usługa attachedDbs nie zwracała pełnej listy dołączonych baz danych. (5f008e1)

Wersja 2.3.0

Wersja 2.3.0

11 stycznia 2023 r.

androidx.sqlite:sqlite:2.3.0, androidx.sqlite:sqlite-framework:2.3.0 i androidx.sqlite:sqlite-ktx:2.3.0 zostały udostępnione. Wersja 2.3.0 zawiera te zatwierdzenia.

Ważne zmiany wprowadzone od wersji 2.2.0

  • Źródła grup bibliotek androidx.sqlite zostały przekonwertowane z języka Java na Kotlin. Pamiętaj, że ze względu na brak adnotacji o wartości null w polu androidx.sqlite mogą wystąpić błędy niezgodności źródła, jeśli źródła znajdują się w Kotlin, a kod wnioskował o nieprawidłową dopuszczalność wartości null. Ponadto niektóre metody pobierania zostały przekonwertowane na właściwości wymagające składni dostępu do właściwości w plikach Kotlin. Jeśli występują istotne niezgodności, zgłoś błąd. (B/240707042)
  • Dodaj interfejs API w konfiguracji SupportSQLite's, aby umożliwić utratę danych podczas mechanizmu przywracania. (I1b830, b/215592732)
  • Dodano interfejs API do blokowania i korzystania z wielu procesów na poziomie FrameworkSQLite*, aby chronić tworzenie i migracje bazy danych w pierwszym etapie obejmujące wiele procesów. (Ied267, b/193182592)

Wersja 2.3.0-rc01

7 grudnia 2022 r.

androidx.sqlite:sqlite:2.3.0-rc01, androidx.sqlite:sqlite-framework:2.3.0-rc01 i androidx.sqlite:sqlite-ktx:2.3.0-rc01 zostały udostępnione. Wersja 2.3.0-rc01 zawiera te zatwierdzenia.

Poprawki błędów

  • Rozwiązywanie problemu z NPE w polu SupportSQLiteQueryBuilder dotyczącym kolumn z wartością null. (Ica8f5).

Wersja 2.3.0-beta02

9 listopada 2022 r.

androidx.sqlite:sqlite:2.3.0-beta02, androidx.sqlite:sqlite-framework:2.3.0-beta02 i androidx.sqlite:sqlite-ktx:2.3.0-beta02 zostały udostępnione. Wersja 2.3.0-beta02 zawiera te zatwierdzenia.

  • Naprawiono różne interfejsy API, które przyjmują argumenty zapytania ze zmiennych (Array<Any?>) do kontrastujących (Array<out Any?>), aby pasowały do zachowania tablic w Javie. (B/253531073)

Wersja 2.3.0-beta01

5 października 2022 r.

androidx.sqlite:sqlite:2.3.0-beta01, androidx.sqlite:sqlite-framework:2.3.0-beta01 i androidx.sqlite:sqlite-ktx:2.3.0-beta01 zostały udostępnione. Wersja 2.3.0-beta01 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Wszystkie źródła android.sqlite zostały przekonwertowane z Javy na Kotlin. b/240707042
  • Jedną z ważnych zmian w konwersji jest to, że następujące funkcje pobierania stały się właściwościami:
    • W aplikacji SupportSQLiteDatabase:
    • attachedDbs
    • isDatabaseIntegrityOk
    • isDbLockedByCurrentThread
    • isOpen
    • isReadOnly
    • isWriteAheadLoggingEnabled
    • maximumSize
    • pageSize
    • path
    • version
    • W aplikacji SupportSQLiteOpenHelper:
    • databaseName
    • readableDatabase
    • writableDatabase
.

Wersja 2.3.0-alpha05

24 sierpnia 2022 r.

androidx.sqlite:sqlite:2.3.0-alpha05, androidx.sqlite:sqlite-framework:2.3.0-alpha05 i androidx.sqlite:sqlite-ktx:2.3.0-alpha05 zostały udostępnione. Wersja 2.3.0-alfa05 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Źródła androidx.sqlite w grupie bibliotek zostały przekonwertowane z języka Java na Kotlin. Pamiętaj, że ze względu na brak adnotacji androidx.sqlite, w których brakuje adnotacji o wartości null, mogą wystąpić błędy niezgodności źródła, jeśli źródła znajdują się w Kotlin, a kod wywnioskował nieprawidłową wartość null. Jeśli zauważysz błąd, zgłoś go. (B/240707042)

Wersja 2.3.0-alfa04

10 sierpnia 2022 r.

androidx.sqlite:sqlite:2.3.0-alpha04, androidx.sqlite:sqlite-framework:2.3.0-alpha04 i androidx.sqlite:sqlite-ktx:2.3.0-alpha04 zostały udostępnione. Wersja 2.3.0-alfa04 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Zaktualizowano dopuszczalność wartości null (I29fbd)

Wersja 2.3.0-alfa03

1 czerwca 2022 r.

androidx.sqlite:sqlite:2.3.0-alpha03, androidx.sqlite:sqlite-framework:2.3.0-alpha03 i androidx.sqlite:sqlite-ktx:2.3.0-alpha03 zostały udostępnione. Wersja 2.3.0-alfa03 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Ustaw film androidx.sqlite.ProcessLock jako ograniczony. Interfejs API ma ograniczony zakres funkcji w obrębie interfejsu androidx.sqlite. Nie należy go używać jako blokady wieloprocesowej ogólnego przeznaczenia. (I1643f)

Wersja 2.3.0-alfa02

6 kwietnia 2022 roku

androidx.sqlite:sqlite:2.3.0-alpha02, androidx.sqlite:sqlite-framework:2.3.0-alpha02 i androidx.sqlite:sqlite-ktx:2.3.0-alpha02 zostały udostępnione. Wersja 2.3.0-alfa02 zawiera te zatwierdzenia.

  • Brak istotnych zmian od wersji 2.3.0-alfa01

Wersja 2.3.0-alfa01

23 lutego 2022 r.

androidx.sqlite:sqlite:2.3.0-alpha01, androidx.sqlite:sqlite-framework:2.3.0-alpha01 i androidx.sqlite:sqlite-ktx:2.3.0-alpha01 zostały udostępnione. Wersja 2.3.0-alfa01 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Dodaj interfejs API w konfiguracji SupportSQLite, aby umożliwić utratę danych podczas mechanizmu przywracania. (I1b830, b/215592732)
  • Dodano interfejs API do blokowania i używania wieloprocesowych procesów na poziomie FrameworkSQLite*, aby chronić tworzenie i migracje baz danych w ramach pierwszej sesji obejmującej wiele procesów. (Ied267, b/193182592)

Wersja 2.2.0

Wersja 2.2.0

15 grudnia 2021 roku

androidx.sqlite:sqlite:2.2.0, androidx.sqlite:sqlite-framework:2.2.0 i androidx.sqlite:sqlite-ktx:2.2.0 zostały udostępnione. Wersja 2.2.0 zawiera te zatwierdzenia.

Ważne zmiany wprowadzone od wersji 2.1.0

Dodaj domyślną metodę dla tej metody płatności za pomocą execPerConnectionSQL() w SupportSQLiteDatabase.

Wersja 2.2.0-rc01

1 grudnia 2021 r.

androidx.sqlite:sqlite:2.2.0-rc01, androidx.sqlite:sqlite-framework:2.2.0-rc01 i androidx.sqlite:sqlite-ktx:2.2.0-rc01 zostały udostępnione. Wersja 2.2.0-rc01 zawiera te zatwierdzenia.

Brak istotnych zmian od wersji 2.2.0-beta01.

Wersja 2.2.0-beta01

13 października 2021 r.

androidx.sqlite:sqlite:2.2.0-beta01, androidx.sqlite:sqlite-framework:2.2.0-beta01 i androidx.sqlite:sqlite-ktx:2.2.0-beta01 zostały udostępnione. Wersja 2.2.0-beta01 zawiera te zatwierdzenia.

  • Brak zmian w porównaniu z poprzednią wersją alfa.

Wersja 2.2.0-alfa02

21 lipca 2021 r.

androidx.sqlite:sqlite:2.2.0-alpha02, androidx.sqlite:sqlite-framework:2.2.0-alpha02 i androidx.sqlite:sqlite-ktx:2.2.0-alpha02 zostały udostępnione. Wersja 2.2.0-alfa02 zawiera te zatwierdzenia.

Brak istotnych zmian od wersji 2.2.0-alfa. Ta wersja jest dostosowana do wersji sali 2.4.0-alpha04.

Wersja 2.2.0-alpha01

16 czerwca 2021 r.

androidx.sqlite:sqlite:2.2.0-alpha01, androidx.sqlite:sqlite-framework:2.2.0-alpha01 i androidx.sqlite:sqlite-ktx:2.2.0-alpha01 zostały udostępnione. Wersja 2.2.0-alfa01 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Dodaj domyślną metodę dla execPerConnectionSQL() w SupportSQLiteDatabase (I86326, b/172270145)

Wersja 2.1.0

Wersja 2.1.0

Styczeń 22, 2020

androidx.sqlite:sqlite:2.1.0, androidx.sqlite:sqlite-framework:2.1.0 i androidx.sqlite:sqlite-ktx:2.1.0 zostały udostępnione bez zmian od 2.1.0-rc01. Wersja 2.1.0 zawiera te zatwierdzenia.

Ważne zmiany wprowadzone od wersji 2.0.1

  • Obsługa funkcji useNoBackupDirectory, która może służyć do wskazania, że w przypadku korzystania z SupportSQLiteOpenHelper baza danych powinna zostać utworzona w katalogu bez kopii zapasowej.

Wersja 2.1.0-rc01

Styczeń 8, 2020

Usługa androidx.sqlite:sqlite-*:2.1.0-rc01 została zwolniona. Wersja 2.1.0-rc01 zawiera te zatwierdzenia.

Ta wersja jest taka sama jak 2.1.0-beta01.

Wersja 2.1.0-beta01

4 grudnia 2019

androidx.sqlite:sqlite:2.1.0-beta01, androidx.sqlite:sqlite-framework:2.1.0-beta01 i androidx.sqlite:sqlite-ktx:2.1.0-beta01 zostały udostępnione bez zmian od 2.1.0-alpha01. Wersja 2.1.0-beta01 zawiera te zatwierdzenia.

Wersja 2.1.0-alpha01

7 listopada 2019 r.

androidx.sqlite:sqlite:2.1.0-alpha01, androidx.sqlite:sqlite-framework:2.1.0-alpha01 i androidx.sqlite:sqlite-ktx:2.1.0-alpha01 zostały udostępnione. Wersja 2.1.0-alfa01 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Do obiektu SupportSQLiteOpenHelper.Configuration dodano nową właściwość o nazwie useNoBackupDirectory, która wskazuje, że należy utworzyć bazę danych opartą na plikach i zlokalizować ją z katalogu bez kopii zapasowej.

Wersja 2.0.1

Wersja 2.0.1

13 marca 2019 r.

Opublikowano wersję 2.0.1 grupy artefaktów androidx.sqlite z 2 poprawkami błędów.

Poprawki błędów

  • Rozwiązaliśmy 2 problemy, które powodowały, że usługa FrameworkSQLiteOpenHelper nie była prawidłowo przywracana z uszkodzonej bazy danych lub nieprawidłowej migracji podczas inicjowania. (b/111504749 i b/111519144)