Úvod do databázy Android SQLite



Tento blog poskytuje úvod do databázy Android SQLite

Úvod do databázy Android SQLite

Databáza Android SQLite vyžaduje veľmi málo pamäte (okolo 250 kB), ktorá je k dispozícii na všetkých zariadeniach so systémom Android. Každé zariadenie má zabudovanú podporu pre databázu SQLite, ktorá sa automaticky spravuje v systéme Android hneď od jeho vytvorenia, vykonania až po proces dotazovania.





SQLite je open source databáza, ktorá je k dispozícii v každej databáze Android. Podporuje štandardné funkcie databázy vzťahov, ako je syntax SQL, transakcie a príkazy SQL. SQLite je podstatne ľahšia verzia databázy SQL, kde väčšina príkazov SQL nebeží na databáze SQLite. Akonáhle je SQLite na mieste, je dôležité zabezpečiť, aby bola funkcia alebo príkaz v SQLite k dispozícii, až potom ich bude možné vykonať.

Základné výhody SQLite:



  • Je to ľahká databáza
  • Vyžaduje veľmi málo pamäte
  • Automaticky spravovaná databáza

SQLite podporuje iba 3 datové typy:

  • Text (ako reťazec) - na ukladanie úložiska dátových typov
  • Celé číslo (ako int) - na uloženie celého primárneho kľúča
  • Skutočné (ako dvojité) - na ukladanie dlhých hodnôt

SQLite v zásade sám o sebe neoveruje dátové typy. Inými slovami, nech sa použijú akékoľvek dátové typy, označia sa ako platné.

Napríklad v tomto prípade bola diskutovaná databáza káblového operátora. Tu sa pridáva nová tabuľka s „textom“ v poli pre meno a pole s názvom „textové pole“. Vytvoril sa náhodný údajový typ. Konečným výsledkom je testovacia tabuľka s neplatným údajovým typom, ktorá ukazuje, že SQLite neoveruje údajový typ.



* Databázu je možné nájsť kliknutím na balík a prístupom k údajovému priečinku do databázového priečinka, ktorý obsahuje súbor.

Poznámka: Trieda SQLiteOpen Helper sa používa na správu vytvárania databázy a správy verzií.

Otázky používateľov:

Je výsledkom zmeny verzie db zmena verzie objektu SQLite?

Verzia objektu SQLite sa nemení, pretože jeden spracováva vytváranie / aktualizáciu databázy a druhý sa hrá o údaje uchovávané v tabuľkách databázy. Tým vôbec neexistuje závislosť

Keď sa vrátime späť, keď rozšírime triedu SQLiteopenHelper, prepíšeme v tejto triede metódy Oncreate & OnUpgrade. Pri prístupe k databáze SQLite to môže byť niekedy pomalé, v závislosti od zložitosti dotazu. Vždy sa uprednostňuje zabezpečiť, aby sa pri vykonaní dotazu SQL zabránilo najmenším dopadom alebo dotazom bežiacim pri rekurzii. Tiež jeodporúča sa synchronizovať databázu.Tieto metódy sú automaticky spracovávané alebo volané frameworkom. Tiež je potrebné poznamenať, že kedykoľvek niekto zvýši verziu DB, automaticky na ňu zavolá UpUpgrade.

Kedykoľvek sa hovorí o otvorenej pomocnej triede SQLite, jej názov a verzia databázy sa odovzdá v konštruktore rozšírenej triedy.

Tu je potrebné vziať do úvahy dve veci:

  • Metóda OnCreate () sa volá, ak databáza neexistuje.
  • Metóda OnUpgrade () sa volá, ak sa aktualizuje verzia databázy.

Trieda otvoreného pomocníka SQLite dáva meno a verziu v konštruktore. Zavolá sa getwriteabledatabase () a ak databáza neexistuje, vytvorí sa OnCreate. Ak v prípade, že databáza existuje a verzia je aktualizovaná, bude sa volať OnUpgrade ().

Sú tieto metódy pri prvom volaní db?

Zoberme si príklad. Akonáhle nainštalujeme aplikáciu, vytvorí sa OnCreate a apk metódy sa nahrá do obchodu Google Play. Po stiahnutí najnovšej verzie apk skontroluje už nainštalovanú databázu. Ak má vyššiu verziu, zavolá aktualizáciu, ak nie, neurobí nič.

Otázka používateľa

Vyžaduje sa povolenie používateľa na aktualizáciu verzie db?

selénový webdriver s uhorkou napríklad v zatmení

Nie, povolenie nie je potrebné, pretože pracujeme na zdrojoch aplikácie, o ktoré povolenie nemusíme hľadať.

Otázka používateľa

Pokiaľ má user1 nainštalovanú moju aplikáciu a jedná sa o upgradovanú verziu pre DB a následne user2 inštaluje novú aplikáciu a user1 aktualizuje aplikáciu. V takom scenári, ak sa volá user1 pri aktualizácii verzie a pri user2 sa volá metóda vytvorenia, sú to všetky metódy z androidu?

Áno, pretože v zariadení už nie je nainštalovaná žiadna verzia. To nevadí, pokiaľ v zariadení nie je nainštalovaná žiadna staršia verzia. Je to veľmi podobné spracovaniu rámca.

Otázka používateľa

Môžeme mať objekt databázy SQLite? Čo ak má moje db menokonflikts iným objektom názvu db?

To nevadí, pretože databáza sa nachádza na názve balíka aplikácie, ktorý by nemal byť konfliktný, aj keď bol vytvorený podpriečinok s rovnakým názvom. Záleží to iba na koreňovej úrovni a manipulácia s koreňovou úrovňou sa vykonáva pomocou názvu balíka. Je potrebné poznamenať, že nemôžeme mať dve aplikácie s rovnakým názvom balíka, ale v rôznych balíkoch môžeme mať 2 rôzne názvy db. Databáza SQLite sa stará o aktualizáciu, mazanie, vkladanie, dopytovanie a zatváranie a otváranie databázových operácií pomocou objektu.

Máte na nás otázku? Uveďte ich v sekcii komentárov a my sa vám ozveme.

Súvisiace príspevky: