Sqlite
androidx.sqlite
zawiera abstrakcyjne interfejsy oraz podstawowe implementacje, których możesz używać do tworzenia własnych bibliotek uzyskujących dostęp do SQLite.
Rozważ użycie biblioteki Room, która udostępnia warstwę abstrakcyjną zamiast SQLite, aby zapewnić solidniejszy dostęp do baz danych i jednocześnie wykorzystać pełne możliwości SQLite.
Najnowsza aktualizacja | Wersja stabilna | Kandydat do publikacji | Wersja Beta | Wersja alfa |
---|---|---|---|---|
12 czerwca 2024 r. | 2.4.0 | - | - | 2.5.0-alfa04 |
Deklarowanie zależności
Aby dodać zależność od SQLite, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Google Maven.
W pliku build.gradle
aplikacji lub modułu dodaj zależności artefaktów, których potrzebujesz:
Odlotowy
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 znajdziesz nowe wydania lub masz pomysły na ulepszenie tej biblioteki. Zanim utworzysz nową bibliotekę, przejrzyj problemy z tą biblioteką. Możesz oddać głos w ramach istniejącego problemu, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 2.5
Wersja 2.5.0-alfa04
12 czerwca 2024 r.
Aplikacja androidx.sqlite:sqlite-*:2.5.0-alpha04
została zwolniona. Wersja 2.5.0-alpha04 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Do interfejsu
BundledSQLiteDriver
dodano interfejs API przeciążeniaopen()
, który umożliwia przekazywanie flag otwartych przy otwieraniu połączenia z bazą danych. Ta opcja jest przydatna do otwierania bazy danych w trybie tylko do odczytu lub używania trybu awaryjnego dla zserializowanych wątków zamiast korzystania z pakietu SQLite w pakiecie (b/340949940).
Poprawki błędów
- Naprawiono problem z łączeniem w pakiecie sterownika SQLite, który powodował wywoływanie funkcji
UnsatisfiedLinkError
z powodu brakujących symboli niepodzielnych na urządzeniach z Androidem z architekturą ARM32. (b/341639198) - Naprawiono problem ze sterownikami, który powodował, że wiązanie tablicy o zerowej długości z kolumną prowadziło do wartości null podczas odczytu danych z kolumny.
Wersja 2.5.0-alfa03
29 maja 2024 r.
Aplikacja androidx.sqlite:sqlite-*:2.5.0-alpha03
została zwolniona. Wersja 2.5.0-alpha03 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono błąd z polem
BundledSQLiteDriver
, w którym utworzone za jego pomocą bazy danych zawierały znak końca zerowego klucza C null. (b/340822359)
Wersja 2.5.0-alfa02
14 maja 2024 r.
Aplikacja androidx.sqlite:sqlite-*:2.5.0-alpha02
została opublikowana bez znaczących zmian od wersji 2.5.0-alfa01 . Wersja 2.5.0-alpha02 zawiera te zatwierdzenia.
Wersja 2.5.0-alfa01
1 maja 2024 r.
Aplikacja androidx.sqlite:sqlite-*:2.5.0-alpha01
została zwolniona. Wersja 2.5.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
- Obsługa wielu platform (KMP) firmy Kotlin: w związku z udostępnieniem wersji 2.7.0-alpha01 Room KMP, która jest pierwszą wersją KMP, zaktualizowaliśmy też interfejsy API platformy
SQLite
, dzięki którym sala może pełnić funkcję KMP. Pakietandriodx.sqlite
zawiera 3 interfejsy definiujące niskopoziomowe interfejsy API SQLite:SQLiteDriver
,SQLiteConnection
iSQLiteStatement
. Artefaktandroidx.sqlite:sqlite-framework
oferuje implementację interfejsów na Androida i iOS, aandroidx.sqlite:sqlite-bundled
– implementację wykorzystującą językSQLite
skompilowany ze źródła (nazywany również „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.
Opublikowano androidx.sqlite:sqlite:2.4.0
, androidx.sqlite:sqlite-framework:2.4.0
i androidx.sqlite:sqlite-ktx:2.4.0
. Wersja 2.4.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 2.3.0
- Wprowadziliśmy różne poprawki błędów.
Wersja 2.4.0-rc01
20 września 2023 r.
Opublikowano androidx.sqlite:sqlite:2.4.0-rc01
, androidx.sqlite:sqlite-framework:2.4.0-rc01
i androidx.sqlite:sqlite-ktx:2.4.0-rc01
. Wersja 2.4.0-rc01 zawiera te zatwierdzenia.
Wersja 2.4.0-beta01
23 sierpnia 2023 r.
Opublikowano androidx.sqlite:sqlite:2.4.0-beta01
, androidx.sqlite:sqlite-framework:2.4.0-beta01
i androidx.sqlite:sqlite-ktx:2.4.0-beta01
. Wersja 2.4.0-beta01 zawiera te zatwierdzenia.
Wersja 2.4.0-alfa03
9 sierpnia 2023 r.
Opublikowano androidx.sqlite:sqlite:2.4.0-alpha03
, androidx.sqlite:sqlite-framework:2.4.0-alpha03
i androidx.sqlite:sqlite-ktx:2.4.0-alpha03
. Wersja 2.4.0-alpha03 zawiera te zatwierdzenia.
Wersja 2.4.0-alfa02
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 wydane bez zmian. Wersja 2.4.0-alpha02 zawiera te zatwierdzenia.
Wersja 2.4.0-alfa01
22 marca 2023 r.
Opublikowano androidx.sqlite:sqlite:2.4.0-alpha01
, androidx.sqlite:sqlite-framework:2.4.0-alpha01
i androidx.sqlite:sqlite-ktx:2.4.0-alpha01
. Wersja 2.4.0-alpha01 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiliśmy błąd
NullPointerException
, który mógł występować w komponencieSupportSQLiteQueryBuilder
. (5df8698)
Wersja 2.3.1
Wersja 2.3.1
22 marca 2023 r.
Opublikowano androidx.sqlite:sqlite:2.3.1
, androidx.sqlite:sqlite-framework:2.3.1
i androidx.sqlite:sqlite-ktx:2.3.1
. Wersja 2.3.1 zawiera te zatwierdzenia.
Poprawki błędów
- Unikaj problemu z platformą, w którym zapytania SQL nie zostały unieważnione po zmianie schematu podczas migracji. Aby uniknąć problemu, podczas migracji
FrameworkSupportSQLiteOpenHelper
ustawi teraz minimalną pamięć podręczną instrukcji SQL. (0ad2a8f) - Rozwiązaliśmy problem, który powodował, że katalog pamięci podręcznej mógł nie być dostępny dla funkcji
SupportSQLiteLock
, dlatego plik o wartości null musi być obsługiwany w prawidłowy sposób. (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.
Opublikowano androidx.sqlite:sqlite:2.3.0
, androidx.sqlite:sqlite-framework:2.3.0
i androidx.sqlite:sqlite-ktx:2.3.0
. Wersja 2.3.0 zawiera te zatwierdzenia.
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 jeśli w elemencieandroidx.sqlite
brakuje adnotacji z wartością null, możesz napotkać błędy niezgodności źródła, jeśli Twoje źródła znajdują się w kotlinie, a kod wywnioskował nieprawidłową wartość null. Ponadto niektóre metody getter 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ąpią poważne niezgodności, zgłoś błąd. (b/240707042) - Dodaj interfejs API do konfiguracji
SupportSQLite's
, aby umożliwić utratę danych podczas mechanizmu przywracania. (I1b830, b/215592732) - Dodano interfejs API do blokowania wielu procesów i używania na poziomie
FrameworkSQLite*
, aby chronić tworzenie i migracje baz danych w wielu procesach po raz pierwszy. (Ied267, b/193182592)
Wersja 2.3.0-rc01
7 grudnia 2022 r.
Opublikowano androidx.sqlite:sqlite:2.3.0-rc01
, androidx.sqlite:sqlite-framework:2.3.0-rc01
i androidx.sqlite:sqlite-ktx:2.3.0-rc01
. Wersja 2.3.0-rc01 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązanie problemu z NPE w kolumnach
SupportSQLiteQueryBuilder
z wartościami null. (Ica8f5)
Wersja 2.3.0-beta02
9 listopada 2022 r.
Opublikowano androidx.sqlite:sqlite:2.3.0-beta02
, androidx.sqlite:sqlite-framework:2.3.0-beta02
i androidx.sqlite:sqlite-ktx:2.3.0-beta02
. Wersja 2.3.0-beta02 zawiera te zatwierdzenia.
- Poprawiono różne interfejsy API, które przyjmują argumenty zapytania z argumentu niezmiennego (
Array<Any?>
) do kontrawariancji (Array<out Any?>
), aby dopasować działanie tablicy w Javie. (b/253531073)
Wersja 2.3.0-beta01
5 października 2022 r.
Opublikowano androidx.sqlite:sqlite:2.3.0-beta01
, androidx.sqlite:sqlite-framework:2.3.0-beta01
i androidx.sqlite:sqlite-ktx:2.3.0-beta01
. Wersja 2.3.0-beta01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Wszystkie źródła android.sqlite zostały przekonwertowane z języka Java na Kotlin. b/240707042
- Jedną z ważniejszych zmian w konwersji jest to, że następujące funkcje pobierające 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-alfa05
24 sierpnia 2022 r.
Opublikowano androidx.sqlite:sqlite:2.3.0-alpha05
, androidx.sqlite:sqlite-framework:2.3.0-alpha05
i androidx.sqlite:sqlite-ktx:2.3.0-alpha05
. Wersja 2.3.0-alpha05 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Źródła grup bibliotek androidx.sqlite zostały przekonwertowane z języka Java na Kotlin. Pamiętaj, że jeśli w komponencie androidx.sqlite brakuje adnotacji dotyczących wartości null, możesz napotkać 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 wystąpią poważne niezgodności, zgłoś błąd. (b/240707042)
Wersja 2.3.0-alfa04
10 sierpnia 2022 r.
Opublikowano androidx.sqlite:sqlite:2.3.0-alpha04
, androidx.sqlite:sqlite-framework:2.3.0-alpha04
i androidx.sqlite:sqlite-ktx:2.3.0-alpha04
. Wersja 2.3.0-alpha04 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zaktualizowana wartość null (I29fbd)
Wersja 2.3.0-alfa03
1 czerwca 2022 r.
Opublikowano androidx.sqlite:sqlite:2.3.0-alpha03
, androidx.sqlite:sqlite-framework:2.3.0-alpha03
i androidx.sqlite:sqlite-ktx:2.3.0-alpha03
. Wersja 2.3.0-alpha03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Włącz
androidx.sqlite.ProcessLock
jako ograniczony. Interfejs API jest ograniczony do funkcjiandroidx.sqlite
i nie powinien być używany jako uniwersalna blokada wieloprocesowa. (I1643f)
Wersja 2.3.0-alfa02
6 kwietnia 2022 roku
Opublikowano androidx.sqlite:sqlite:2.3.0-alpha02
, androidx.sqlite:sqlite-framework:2.3.0-alpha02
i androidx.sqlite:sqlite-ktx:2.3.0-alpha02
. Wersja 2.3.0-alpha02 zawiera te zatwierdzenia.
- Brak istotnych zmian od wersji 2.3.0-alfa01
Wersja 2.3.0-alfa01
23 lutego 2022 r.
Opublikowano androidx.sqlite:sqlite:2.3.0-alpha01
, androidx.sqlite:sqlite-framework:2.3.0-alpha01
i androidx.sqlite:sqlite-ktx:2.3.0-alpha01
. Wersja 2.3.0-alpha01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaj interfejs API w konfiguracji SupportSQLite, aby umożliwić utratę danych podczas mechanizmu przywracania. (I1b830, b/215592732)
- Dodano interfejs API do blokowania wielu procesów i używania na poziomie FrameworkSQLite*, aby chronić tworzenie i migracje baz danych w wielu procesach po raz pierwszy. (Ied267, b/193182592)
Wersja 2.2.0
Wersja 2.2.0
15 grudnia 2021 roku
Opublikowano androidx.sqlite:sqlite:2.2.0
, androidx.sqlite:sqlite-framework:2.2.0
i androidx.sqlite:sqlite-ktx:2.2.0
. Wersja 2.2.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 2.1.0
Dodaj domyślną metodę dla funkcji execPerConnectionSQL()
w: SupportSQLiteDatabase
.
Wersja 2.2.0-rc01
Grudzień 1, 2021
Opublikowano androidx.sqlite:sqlite:2.2.0-rc01
, androidx.sqlite:sqlite-framework:2.2.0-rc01
i androidx.sqlite:sqlite-ktx:2.2.0-rc01
. 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.
Opublikowano androidx.sqlite:sqlite:2.2.0-beta01
, androidx.sqlite:sqlite-framework:2.2.0-beta01
i androidx.sqlite:sqlite-ktx:2.2.0-beta01
. Wersja 2.2.0-beta01 zawiera te zatwierdzenia.
- Brak zmian w stosunku do poprzedniej wersji alfa.
Wersja 2.2.0-alfa02
21 lipca 2021 r.
Opublikowano androidx.sqlite:sqlite:2.2.0-alpha02
, androidx.sqlite:sqlite-framework:2.2.0-alpha02
i androidx.sqlite:sqlite-ktx:2.2.0-alpha02
. Wersja 2.2.0-alpha02 zawiera te zatwierdzenia.
Brak istotnych zmian od wersji 2.2.0-alfa01. Ta wersja jest dostosowana do wersji sali 2.4.0-alpha04
.
Wersja 2.2.0-alfa01
16 czerwca 2021 r.
Opublikowano androidx.sqlite:sqlite:2.2.0-alpha01
, androidx.sqlite:sqlite-framework:2.2.0-alpha01
i androidx.sqlite:sqlite-ktx:2.2.0-alpha01
. Wersja 2.2.0-alpha01 zawiera te zatwierdzenia.
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.
androidx.sqlite:sqlite:2.1.0
, androidx.sqlite:sqlite-framework:2.1.0
i androidx.sqlite:sqlite-ktx:2.1.0
zostały opublikowane bez zmian od 2.1.0-rc01
. Wersja 2.1.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 2.0.1
- Obsługa polecenia
useNoBackupDirectory
, która pozwala wskazać, że baza danych ma zostać utworzona w katalogu bez kopii zapasowych, gdy używana jest usługaSupportSQLiteOpenHelper
.
Wersja 2.1.0-rc01
Styczeń 8, 2020
Aplikacja 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 opublikowane bez zmian od 2.1.0-alpha01
. Wersja 2.1.0-beta01 zawiera te zatwierdzenia.
Wersja 2.1.0-alfa01
7 listopada 2019 r.
Opublikowano androidx.sqlite:sqlite:2.1.0-alpha01
, androidx.sqlite:sqlite-framework:2.1.0-alpha01
i androidx.sqlite:sqlite-ktx:2.1.0-alpha01
. Wersja 2.1.0-alpha01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Do pliku
SupportSQLiteOpenHelper.Configuration
dodaliśmy nową właściwość o nazwieuseNoBackupDirectory
wskazującą, że należy utworzyć bazę danych opartą na plikach i zlokalizowaną w katalogu braku kopii zapasowych.
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.
Poprawki błędów
- Rozwiązaliśmy 2 problemy, które powodowały, że podczas inicjowania usługa
FrameworkSQLiteOpenHelper
nie mogła prawidłowo odzyskać z uszkodzonej bazy danych lub nieprawidłowej migracji. (b/111504749 i b/111519144)