Sqlite
androidx.sqlite
zawiera abstrakcyjne interfejsy oraz podstawowe implementacje, których można używać 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.
Ostatnia aktualizacja | Wersja stabilna | Wersja kandydująca | Wersja Beta | Wersja alfa |
---|---|---|---|---|
11 grudnia 2024 r. | 2.4.0 | - | - | 2.5.0-alpha12 |
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ć Jetpacka. Jeśli zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk z gwiazdką.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 2.5
Wersja 2.5.0-alpha12
11 grudnia 2024 r.
androidx.sqlite:sqlite-*:2.5.0-alpha12
został zwolniony. Wersja 2.5.0-alpha12 zawiera te komity.
Wersja 2.5.0-alpha11
30 października 2024 r.
androidx.sqlite:sqlite-*:2.5.0-alpha11
został zwolniony. Wersja 2.5.0-alpha11 zawiera te komity.
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ówSQLITE_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.
androidx.sqlite:sqlite-*:2.5.0-alpha07
został zwolniony. 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 komisy.
Nowe funkcje
- Dodanie obsługi
linuxArm64
Kotlin Multiplatform (I139d3, b/338268719)
Wersja 2.5.0-alpha05
10 lipca 2024 r.
androidx.sqlite:sqlite-*:2.5.0-alpha05
został zwolniony. Wersja 2.5.0-alpha05 zawiera te komisy.
Zmiany w interfejsie API
- Zmieniono nazwę
SQLiteKt
naSQLite
, aBundledSQLiteKt
naBundledSQLite
. (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 w interfejsie API
- Dodano interfejs API przeciążenia
open()
doBundledSQLiteDriver
, aby przekazywać flagi otwarcia podczas otwierania 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 w sterownikach, w których 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-alpha03 zawiera te komity.
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. Pakietandriodx.sqlite
zawiera 3 interfejsy definiujące interfejsy niskopoziomowe SQLite:SQLiteDriver
,SQLiteConnection
iSQLiteStatement
. Elementandroidx.sqlite:sqlite-framework
zawiera implementację interfejsów natywnych dla Androida i iOS, a elementandroidx.sqlite:sqlite-bundled
– implementację, która korzysta z kompilowanego z źródłaSQLite
(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.
Funkcje androidx.sqlite:sqlite:2.4.0
, androidx.sqlite:sqlite-framework:2.4.0
i androidx.sqlite:sqlite-ktx:2.4.0
są dostępne. Wersja 2.4.0 zawiera te zatwierdzenia.
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.
Funkcje androidx.sqlite:sqlite:2.4.0-rc01
, androidx.sqlite:sqlite-framework:2.4.0-rc01
i androidx.sqlite:sqlite-ktx:2.4.0-rc01
są dostępne. 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-beta01
i androidx.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-alpha03
i androidx.sqlite:sqlite-ktx:2.4.0-alpha03
są dostępne. Wersja 2.4.0-alpha03 zawiera te commity.
Wersja 2.4.0-alpha02
21 czerwca 2023 r.
Funkcje androidx.sqlite:sqlite:2.4.0-alpha02
, androidx.sqlite:sqlite-framework:2.4.0-alpha02
i androidx.sqlite:sqlite-ktx:2.4.0-alpha02
są publikowane 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-alpha01
i androidx.sqlite:sqlite-ktx:2.4.0-alpha01
są dostępne. Wersja 2.4.0-alpha01 zawiera te commity.
Poprawki błędów
- Naprawiono błąd
NullPointerException
, który mógł występować w sekcjiSupportSQLiteQueryBuilder
. (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.1
i androidx.sqlite:sqlite-ktx:2.3.1
są dostępne. Wersja 2.3.1 zawiera te commity.
Poprawki błędów
- Unikanie problemu z ramówką, w którym zapytania SQL nie były unieważniane po zmianie schematu podczas migracji.
FrameworkSupportSQLiteOpenHelper
będzie teraz ustawiać minimalną pamięć podręczną instrukcji SQL podczas migracji, aby uniknąć tego problemu. (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.
Funkcje androidx.sqlite:sqlite:2.3.0
, androidx.sqlite:sqlite-framework:2.3.0
i androidx.sqlite:sqlite-ktx:2.3.0
są dostępne. Wersja 2.3.0 zawiera te commity.
Ważne zmiany 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 kodzieandroidx.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ć migracje i pierwotne tworzenie bazy danych w wielu procesach. (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-rc01
i androidx.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.
Funkcje androidx.sqlite:sqlite:2.3.0-beta02
, androidx.sqlite:sqlite-framework:2.3.0-beta02
i androidx.sqlite:sqlite-ktx:2.3.0-beta02
są dostępne. 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.
Funkcje androidx.sqlite:sqlite:2.3.0-beta01
, androidx.sqlite:sqlite-framework:2.3.0-beta01
i androidx.sqlite:sqlite-ktx:2.3.0-beta01
są dostępne. Wersja 2.3.0-beta01 zawiera te commity.
Zmiany w interfejsie API
- Wszystkie źródła android.sqlite zostały przekonwertowane z języka Java 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:
- W
SupportSQLiteDatabase
: attachedDbs
isDatabaseIntegrityOk
isDbLockedByCurrentThread
isOpen
isReadOnly
isWriteAheadLoggingEnabled
maximumSize
pageSize
path
version
- W
SupportSQLiteOpenHelper
: databaseName
readableDatabase
writableDatabase
- W
Wersja 2.3.0-alpha05
24 sierpnia 2022 r.
Funkcje androidx.sqlite:sqlite:2.3.0-alpha05
, androidx.sqlite:sqlite-framework:2.3.0-alpha05
i androidx.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 biblioteki androidx.sqlite 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 błędnie wywnioskował możliwość wystąpienia wartości 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.
Funkcje androidx.sqlite:sqlite:2.3.0-alpha04
, androidx.sqlite:sqlite-framework:2.3.0-alpha04
i androidx.sqlite:sqlite-ktx:2.3.0-alpha04
są dostępne. 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-alpha03
i androidx.sqlite:sqlite-ktx:2.3.0-alpha03
są dostępne. Wersja 2.3.0-alpha03 zawiera te commity.
Zmiany w interfejsie API
- Ogranicz dostęp do
androidx.sqlite.ProcessLock
. Interfejs API jest ograniczony do funkcji w ramachandroidx.sqlite
i nie powinien być używany jako uniwersalny blokada wieloprocesorowa. (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-alpha02
i androidx.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.
Funkcje androidx.sqlite:sqlite:2.3.0-alpha01
, androidx.sqlite:sqlite-framework:2.3.0-alpha01
i androidx.sqlite:sqlite-ktx:2.3.0-alpha01
są dostępne. 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 przywracania. (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.0
i androidx.sqlite:sqlite-ktx:2.2.0
są dostępne. Wersja 2.2.0 zawiera te commity.
Ważne zmiany od wersji 2.1.0
Dodaj domyślną metodę dla execPerConnectionSQL()
w SupportSQLiteDatabase
.
Wersja 2.2.0-rc01
1 grudnia 2021 r.
Funkcje androidx.sqlite:sqlite:2.2.0-rc01
, androidx.sqlite:sqlite-framework:2.2.0-rc01
i androidx.sqlite:sqlite-ktx:2.2.0-rc01
są dostępne. 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-beta01
i androidx.sqlite:sqlite-ktx:2.2.0-beta01
są dostępne. Wersja 2.2.0-beta01 zawiera te commity.
- Brak zmian w porównaniu z poprzednią wersją alfa.
Wersja 2.2.0-alpha02
21 lipca 2021 r.
Funkcje androidx.sqlite:sqlite:2.2.0-alpha02
, androidx.sqlite:sqlite-framework:2.2.0-alpha02
i androidx.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 została przygotowana tylko po to, aby dopasować ją do wersji 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-alpha01
i androidx.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.0
i androidx.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 parametru
useNoBackupDirectory
, który może być używany do wskazania, że baza danych powinna zostać utworzona w katalogu bez kopii zapasowej podczas korzystania z opcjiSupportSQLiteOpenHelper
.
Wersja 2.1.0-rc01
8 stycznia 2020 r.
androidx.sqlite:sqlite-*:2.1.0-rc01
został zwolniony. 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-beta01
i androidx.sqlite:sqlite-ktx:2.1.0-beta01
są dostępne bez zmian od 2.1.0-alpha01
. Wersja 2.1.0-beta01 zawiera te commity.
Wersja 2.1.0-alpha01
7 listopada 2019 r.
Funkcje androidx.sqlite:sqlite:2.1.0-alpha01
, androidx.sqlite:sqlite-framework:2.1.0-alpha01
i androidx.sqlite:sqlite-ktx:2.1.0-alpha01
są dostępne. Wersja 2.1.0-alpha01 zawiera te commity.
Zmiany w interfejsie API
- Do właściwości
SupportSQLiteOpenHelper.Configuration
dodano nową właściwość o nazwieuseNoBackupDirectory
, 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/111504749 i b/111519144)