Sqlite

Biblioteka androidx.sqlite zawiera abstrakcyjne interfejsy oraz podstawowe implementacje, które można wykorzystać do tworzenia własnych bibliotek uzyskujących dostęp do SQLite.

Warto rozważyć użycie biblioteki Room, która zapewnia warstwę abstrakcji nad SQLite, aby umożliwić bardziej niezawodny dostęp do bazy danych, jednocześnie wykorzystując pełną moc SQLite.

Najnowsza aktualizacja Wersja stabilna Wersja kandydująca Wersja Beta Wersja alfa
30 października 2024 r. 2.4.0 - - 2.5.0-alpha11

Deklarowanie zależności

Aby dodać zależność od SQLite, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Maven firmy Google.

Dodaj zależności dla 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 wydania lub masz pomysły na ulepszenie tej biblioteki. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz oddać swój głos do istniejącego problemu, klikając przycisk gwiazdki.

Tworzenie nowego zgłoszenia

Więcej informacji znajdziesz w dokumentacji narzędzia do śledzenia problemów.

Wersja 2.5

Wersja 2.5.0-alpha11

30 października 2024 r.

androidx.sqlite:sqlite-*:2.5.0-alpha11 został zwolniony. Wersja 2.5.0-alfa11 zawiera te zatwierdzenia.

Wersja 2.5.0-alpha10

16 października 2024 r.

androidx.sqlite:sqlite-*:2.5.0-alpha10 został zwolniony. Wersja 2.5.0-alpha10 zawiera te komity.

Zmiany w interfejsie API

  • Dodaj funkcję SQLiteStatement.getColumnType() oraz różne stałe wyników SQLITE_DATA_*, aby umożliwić pobieranie typu danych kolumny. (I1985c, b/369636251)

Wersja 2.5.0-alpha09

2 października 2024 r.

androidx.sqlite:sqlite-*:2.5.0-alpha09 został zwolniony. Wersja 2.5.0-alpha09 zawiera te komity.

Wersja 2.5.0-alpha08

18 września 2024 r.

androidx.sqlite:sqlite-*:2.5.0-alpha08 został zwolniony. Wersja 2.5.0-alpha08 zawiera te komity.

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-alpha07 zawiera te komity.

Nowe funkcje

  • Dodano obsługę Linuxa ARM 64 w celach JVM i Desktop. (b/358045505)

Wersja 2.5.0-alpha06

7 sierpnia 2024 r.

androidx.sqlite:sqlite-*:2.5.0-alpha06 został zwolniony. Wersja 2.5.0-alpha06 zawiera te komity.

Nowe funkcje

Wersja 2.5.0-alpha05

10 lipca 2024 r.

androidx.sqlite:sqlite-*:2.5.0-alpha05 został zwolniony. Wersja 2.5.0-alfa05 zawiera te zatwierdzenia.

Zmiany w interfejsie API

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

Wersja 2.5.0-alpha04

12 czerwca 2024 r.

androidx.sqlite:sqlite-*:2.5.0-alpha04 został zwolniony. Wersja 2.5.0-alpha04 zawiera te komisy.

Zmiany interfejsu API

  • Do BundledSQLiteDriver dodano interfejs API przeciążenia open(), aby przekazywać otwarte flagi przy otwieraniu połączenia z bazą danych. Przydatne do otwierania bazy danych w trybie tylko do odczytu lub używania serializowanego trybu bezpiecznego wątku zamiast trybu wielowątkowego, w którym skompilowano SQLite (b/340949940).

Poprawki błędów

  • Rozwiązaliśmy problem z linkowaniem w dołączonym sterowniku SQLite, który powodował UnsatisfiedLinkError z powodu braku symboli atomowych na urządzeniach z Androidem i procesorem ARM32. (b/341639198)
  • Rozwiązaliśmy problem z sterownikami, w którym wiązanie tablicy bajtów o długości zerowej w kolumnie powodowało, że podczas odczytu z niej uzyskiwaliśmy wartość null.

Wersja 2.5.0-alpha03

29 maja 2024 r.

androidx.sqlite:sqlite-*:2.5.0-alpha03 został zwolniony. Wersja 2.5.0-alfa03 zawiera te zatwierdzenia.

Poprawki błędów

  • Rozwiązanie problemu z polem BundledSQLiteDriver, w którym bazy danych utworzone za jego pomocą zawierały znak zakończenia null w języku C. (b/340822359)

Wersja 2.5.0-alpha02

14 maja 2024 r.

androidx.sqlite:sqlite-*:2.5.0-alpha02 nie zawiera żadnych znaczących zmian od wersji 2.5.0-alpha01 . Wersja 2.5.0-alpha02 zawiera te komity.

Wersja 2.5.0-alpha01

1 maja 2024 r.

androidx.sqlite:sqlite-*:2.5.0-alpha01 został zwolniony. Wersja 2.5.0-alpha01 zawiera te komisy.

Nowe funkcje

  • Obsługa Kotlin Multi-Platform (KMP): wraz z wydaniem Room 2.7.0-alpha01, czyli pierwszej wersji Room KMP, zostały również zaktualizowane interfejsy API SQLite, które umożliwiają korzystanie z Room w ramach KMP. Pakiet andriodx.sqlite zawiera 3 interfejsy definiujące interfejsy niskopoziomowe SQLite: SQLiteDriver, SQLiteConnectionSQLiteStatement. Element androidx.sqlite:sqlite-framework zawiera implementację interfejsów natywnych dla Androida i iOS, a element androidx.sqlite:sqlite-bundled – implementację, która korzysta z kompilowanego z źródła SQLite (zwanego też „SQLite w pakiecie”). 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 commity.

Ważne zmiany od wersji 2.3.0

  • Dodano 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.

Funkcje androidx.sqlite:sqlite:2.4.0-beta01, androidx.sqlite:sqlite-framework:2.4.0-beta01androidx.sqlite:sqlite-ktx:2.4.0-beta01 są dostępne. Wersja 2.4.0-beta01 zawiera te commity.

Wersja 2.4.0-alpha03

9 sierpnia 2023 r.

Funkcje androidx.sqlite:sqlite:2.4.0-alpha03, androidx.sqlite:sqlite-framework:2.4.0-alpha03androidx.sqlite:sqlite-ktx:2.4.0-alpha03 są dostępne. 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-alpha02 zawiera te commity.

Wersja 2.4.0-alpha01

22 marca 2023 r.

Funkcje androidx.sqlite:sqlite:2.4.0-alpha01, androidx.sqlite:sqlite-framework:2.4.0-alpha01androidx.sqlite:sqlite-ktx:2.4.0-alpha01 są dostępne. Wersja 2.4.0-alpha01 zawiera te commity.

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.

Funkcje androidx.sqlite:sqlite:2.3.1, androidx.sqlite:sqlite-framework:2.3.1androidx.sqlite:sqlite-ktx:2.3.1 są dostępne. Wersja 2.3.1 zawiera te commity.

Poprawki błędów

  • Unikanie problemu z ramką, w którym zapytania SQL nie były unieważniane 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, przez co trzeba było prawidłowo obsłużyć pusty plik. (9d177dc)
  • Rozwiązaliśmy problem, który powodował, że zapytanie attachedDbs nie zwracało pełnej listy załą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 commity.

Ważne zmiany wprowadzone od wersji 2.2.0

  • Źródła grupy bibliotek androidx.sqlite zostały przekonwertowane z języka Java na Kotlin. Pamiętaj, że w kodzie androidx.sqlite brakowało niektórych adnotacji dotyczących możliwości wystąpienia wartości null, więc jeśli źródła są w Kotlinie, a kod wywnioskował nieprawidłową wartość null, mogą wystąpić błędy niezgodności źródeł. Ponadto niektóre metody gettera zostały przekonwertowane na właściwości wymagające składni dostępu do właściwości w plikach Kotlin. Jeśli zauważysz istotne niezgodności, zgłoś błąd. (b/240707042)
  • Dodaj interfejs API w konfiguracji SupportSQLite's, aby umożliwić utratę danych podczas działania mechanizmu odzyskiwania. (I1b830, b/215592732)
  • Dodano interfejs API do blokowania i używania 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.

Funkcje androidx.sqlite:sqlite:2.3.0-rc01, androidx.sqlite:sqlite-framework:2.3.0-rc01androidx.sqlite:sqlite-ktx:2.3.0-rc01 są dostępne. Wersja 2.3.0-rc01 zawiera te commity.

Poprawki błędów

  • Rozwiązanie problemu z błędem NPE w funkcji SupportSQLiteQueryBuilder w przypadku kolumn z wartościami dozwolonymi 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 commity.

  • Poprawiliśmy różne interfejsy API, które przyjmują argumenty zapytania z invariant (Array<Any?>) na contravariant (Array<out Any?>), aby dopasować zachowanie tablicy do Java. (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 w interfejsie API

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

Wersja 2.3.0-alpha05

24 sierpnia 2022 r.

Funkcje androidx.sqlite:sqlite:2.3.0-alpha05, androidx.sqlite:sqlite-framework:2.3.0-alpha05androidx.sqlite:sqlite-ktx:2.3.0-alpha05 są dostępne. Wersja 2.3.0-alpha05 zawiera te commity.

Zmiany w interfejsie API

  • Źródła androidx.sqlite w grupie bibliotek zostały przekonwertowane z języka Java na Kotlin. Ponieważ w bibliotece androidx.sqlite brakowało niektórych adnotacji dotyczących możliwości wystąpienia wartości null, jeśli źródła są w Kotlinie, a kod wywnioskował nieprawidłową wartość null, mogą wystąpić błędy niezgodności źródeł. Jeśli zauważysz istotne problemy ze zgodnością, zgłoś błąd. (b/240707042)

Wersja 2.3.0-alpha04

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-alpha04 zawiera te commity.

Zmiany w interfejsie API

  • Zaktualizowano możliwość wartości pustych (I29fbd)

Wersja 2.3.0-alpha03

1 czerwca 2022 r.

Funkcje androidx.sqlite:sqlite:2.3.0-alpha03, androidx.sqlite:sqlite-framework:2.3.0-alpha03androidx.sqlite:sqlite-ktx:2.3.0-alpha03 są dostępne. Wersja 2.3.0-alpha03 zawiera te commity.

Zmiany w interfejsie 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-alpha02

6 kwietnia 2022 roku

Funkcje androidx.sqlite:sqlite:2.3.0-alpha02, androidx.sqlite:sqlite-framework:2.3.0-alpha02androidx.sqlite:sqlite-ktx:2.3.0-alpha02 są dostępne. Wersja 2.3.0-alpha02 zawiera te commity.

  • Brak znaczących zmian od wersji 2.3.0-alpha01

Wersja 2.3.0-alpha01

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-alpha01 zawiera te commity.

Zmiany w interfejsie API

  • Dodaj interfejs API w konfiguracji SupportSQLite, aby umożliwić utratę danych podczas działania mechanizmu odzyskiwania. (I1b830, b/215592732)
  • Dodano interfejs API do blokowania i używania wielu procesów na poziomie FrameworkSQLite*, aby chronić migracje i pierwotne tworzenie baz danych w wielu procesach. (Ied267, b/193182592)

Wersja 2.2.0

Wersja 2.2.0

15 grudnia 2021 roku

Funkcje androidx.sqlite:sqlite:2.2.0, androidx.sqlite:sqlite-framework:2.2.0androidx.sqlite:sqlite-ktx:2.2.0 są dostępne. Wersja 2.2.0 zawiera te zatwierdzenia.

Ważne zmiany wprowadzone od wersji 2.1.0

Dodaj domyślną metodę dla 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 commity.

Brak znaczących zmian od wersji 2.2.0-beta01.

Wersja 2.2.0-beta01

13 października 2021 r.

Funkcje androidx.sqlite:sqlite:2.2.0-beta01, androidx.sqlite:sqlite-framework:2.2.0-beta01androidx.sqlite:sqlite-ktx:2.2.0-beta01 są dostępne. 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.

Funkcje androidx.sqlite:sqlite:2.2.0-alpha02, androidx.sqlite:sqlite-framework:2.2.0-alpha02androidx.sqlite:sqlite-ktx:2.2.0-alpha02 są dostępne. Wersja 2.2.0-alpha02 zawiera te commity.

Brak znaczących zmian od wersji 2.2.0-alpha01. Ta wersja jest zgodna z wersją Room 2.4.0-alpha04.

Wersja 2.2.0-alpha01

16 czerwca 2021 r.

Funkcje androidx.sqlite:sqlite:2.2.0-alpha01, androidx.sqlite:sqlite-framework:2.2.0-alpha01androidx.sqlite:sqlite-ktx:2.2.0-alpha01 są dostępne. Wersja 2.2.0-alpha01 zawiera te commity.

Zmiany w interfejsie API

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

Wersja 2.1.0

Wersja 2.1.0

22 stycznia 2020 r.

Funkcje androidx.sqlite:sqlite:2.1.0, androidx.sqlite:sqlite-framework:2.1.0androidx.sqlite:sqlite-ktx:2.1.0 są dostępne bez zmian od 2.1.0-rc01. Wersja 2.1.0 zawiera te zatwierdzenia.

Ważne zmiany 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

8 stycznia 2020 r.

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

Ta wersja jest identyczna z 2.1.0-beta01.

Wersja 2.1.0-beta01

4 grudnia 2019

Funkcje androidx.sqlite:sqlite:2.1.0-beta01, androidx.sqlite:sqlite-framework:2.1.0-beta01androidx.sqlite:sqlite-ktx:2.1.0-beta01 są dostępne 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-alpha01 zawiera te commity.

Zmiany interfejsu API

  • Do właściwości SupportSQLiteOpenHelper.Configuration dodano nową właściwość o nazwie useNoBackupDirectory, aby wskazać, że baza danych oparta na plikach powinna zostać utworzona i znajdować się w katalogu bez kopii zapasowej.

Wersja 2.0.1

Wersja 2.0.1

13 marca 2019 r.

Opublikowaliśmy 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 FrameworkSQLiteOpenHelper nie był w odpowiednim stopniu przywracany po uszkodzeniu bazy danych lub nieprawidłowej migracji podczas inicjalizacji. (b/111504749b/111519144)