Úvod do databáze Android SQLite



Blog poskytuje úvod do databáze Android SQLite

Úvod do databáze Android SQLite

Databáze Android SQLite vyžaduje velmi málo paměti (přibližně 250 kB), která je k dispozici na všech zařízeních Android. Každé zařízení má zabudovanou podporu pro databázi SQLite, která se automaticky spravuje v systému Android hned od jeho vytvoření, spuštění až po dotazování.





SQLite je open source databáze dostupná v každé databázi Android. Podporuje standardní funkce databáze vztahů, jako je syntaxe SQL, transakce a příkazy SQL. SQLite je podstatně lehčí verze databáze SQL, kde většina příkazů SQL nefunguje na databázi SQLite. Jakmile je SQLite na místě, je důležité zajistit, aby byla funkce nebo příkaz v SQLite k dispozici, až poté bude možné jej spustit.

Základní výhody SQLite:



  • Je to odlehčená databáze
  • Vyžaduje velmi málo paměti
  • Automaticky spravovaná databáze

SQLite podporuje pouze 3 datové typy:

  • Text (jako řetězec) - pro ukládání úložiště datových typů
  • Celé číslo (jako int) - pro uložení celočíselného primárního klíče
  • Real (jako dvojitý) - pro ukládání dlouhých hodnot

V zásadě SQLite sám neověřuje datové typy. Jinými slovy, ať se používají jakékoli datové typy, označují se jako platné.

Například v tomto případě byla diskutována databáze kabelového operátora. Zde je přidána nová tabulka s textem v poli pro název a pole s textovým polem. Byl vytvořen náhodný datový typ. Konečným výsledkem je testovací tabulka s neplatným datovým typem, která ukazuje, že SQLite neověřuje datový typ.



* Databázi lze najít kliknutím na balíček a přístupem k datové složce do databázové složky, která obsahuje soubor.

Poznámka: Třída Pomocník SQLiteOpen se používá ke správě vytváření databází a správy verzí.

Otázky uživatele:

Je výsledkem změny verze db změna verze objektu SQLite?

Ve verzi SQLite objektu nedojde k žádné změně, protože jedna zpracovává vytváření / aktualizaci databáze a druhá hraje na datech uchovávaných v tabulkách databáze. Tím vůbec neexistuje závislost

Když se vrátíme, když rozšíříme třídu SQLiteopenHelper, přepíšeme metody Oncreate & OnUpgrade v této třídě. Při přístupu k databázi SQLite může být někdy pomalá, v závislosti na složitosti dotazu. Vždy se upřednostňuje zajistit, aby při provádění dotazu SQL nedocházelo k nejmenším dopadům nebo dotazům spuštěným v rekurzi. Také to jedoporučeno provádět databázi synchronně.Tyto metody jsou automaticky zpracovány nebo volány rozhraním. Rovněž je třeba poznamenat, že kdykoli někdo zvýší verzi DB, automaticky na ni zavolá onUpgrade.

Kdykoli se mluví o otevřené pomocné třídě SQLite, její název a verze databáze se předá v konstruktoru rozšířené třídy.

Zde je třeba vzít v úvahu dvě věci:

  • Metoda OnCreate () se volá, pokud databáze neexistuje.
  • Metoda OnUpgrade () se volá, pokud je aktualizována verze databáze.

Otevřená pomocná třída SQLite udává název a verzi v konstruktoru. Volá se getwriteabledatabase () a pokud databáze neexistuje, vytvoří se OnCreate. Pokud v případě, že databáze existuje a verze je aktualizována, zavolá OnUpgrade ().

Jsou tyto metody při prvním volání db?

Vezměme si příklad. Jakmile nainstalujeme aplikaci, vytvoří se OnCreate a metoda apk se nahraje do obchodu Google Play. Po stažení nejnovější verze apk zkontroluje již nainstalovanou databázi. Pokud má vyšší verzi, zavolá upgrade, pokud ne, pak neudělá nic.

Otázka uživatele

Je vyžadováno oprávnění uživatele k upgradu verze db?

jak kompilovat v Javě

Ne, povolení není vyžadováno, protože pracujeme na zdrojích aplikace, o jejichž povolení nemusíme žádat.

Otázka uživatele

Pokud uživatel1 nainstaloval mou aplikaci a jedná se o upgradovanou verzi pro DB a následně uživatel2 instaluje novou aplikaci a uživatel1 upgraduje aplikaci. V takovém scénáři, pokud je volán uživatel1 na aktualizaci verze a je volána metoda vytvoření uživatele2, jsou všechny metody z Androidu?

Ano, protože v zařízení již nemáme nainstalovanou žádnou verzi. To nevadí, pokud v zařízení není nainstalována žádná dřívější verze. Je to velmi podobné zpracování rámce.

Otázka uživatele

Můžeme mít objekt databáze SQLite? Co když má moje db jménokonflikts jiným objektem názvu db?

To nevadí, protože databáze se nachází na názvu balíčku aplikace, který by neměl být konfliktní, i když byla vytvořena podsložka se stejným názvem. Záleží pouze na kořenové úrovni a manipulace na kořenové úrovni se provádí pomocí názvu balíčku. Je třeba poznamenat, že nemůžeme mít dvě aplikace se stejným názvem balíčku, ale v různých balíčcích můžeme mít 2 různé názvy db. Databáze SQLite se stará o aktualizaci, mazání, vkládání, dotazování a uzavírání a otevírání databázových operací pomocí objektu.

Máte na nás dotaz? Uveďte je v sekci komentáře a my se vám ozveme.

Související příspěvky: