„Android SQLite“ duomenų bazės įvadas



Tinklaraštyje pateikiama „Android SQLite“ duomenų bazės įvadas

„Android SQLite“ duomenų bazės įvadas

„Android SQLite“ duomenų bazei reikia labai mažai atminties (apie 250 KB), kuri yra prieinama visuose „Android“ įrenginiuose. Kiekvienas įrenginys turi integruotą „SQLite“ duomenų bazės palaikymą, kuris automatiškai valdomas „Android“ sistemoje nuo pat jo sukūrimo, vykdymo iki užklausų pateikimo proceso.





SQLite yra atvirojo kodo duomenų bazė, prieinama kiekvienoje „Android“ duomenų bazėje. Jis palaiko standartinių santykių duomenų bazės funkcijas, tokias kaip SQL sintaksė, operacijos ir SQL sakiniai. SQLite yra lengvesnė SQL duomenų bazės versija, kur dauguma SQL komandų nevykdoma SQLite duomenų bazėje. Kai SQLite yra vietoje, svarbu įsitikinti, kad funkcija ar komanda yra pasiekiama SQLite tik tada, kai ją galima vykdyti.

Pagrindiniai „SQLite“ pranašumai:



  • Tai nedidelio svorio duomenų bazė
  • Reikia labai mažai atminties
  • Automatiškai valdoma duomenų bazė

SQLite palaiko tik 3 duomenų tipus:

  • Tekstas (kaip eilutė) - skirtas saugoti duomenų tipų saugyklą
  • Sveikasis skaičius (pvz., Int) - sveikojo skaičiaus pirminiam raktui saugoti
  • Tikras (kaip dvigubas) - ilgoms vertybėms saugoti

Iš esmės SQLite pati nepatvirtina duomenų tipų. Kitaip tariant, kad ir kokie duomenų tipai būtų naudojami, jie įvardijami kaip galiojantys.

Pavyzdžiui, šiuo atveju buvo aptarta kabelių operatoriaus duomenų bazė. Čia pridedama nauja lentelė su „tekstu“ pavadinimo lauke ir lauko pavadinimo laukelyje su „teksto lauku“. Sukurtas atsitiktinės vertės duomenų tipas. Galutinis rezultatas yra bandymo lentelė su neteisingu duomenų tipu, kuris rodo, kad SQLite nepatvirtina duomenų tipo.



* Duomenų bazę galima rasti spustelėjus paketą ir patekus į duomenų aplanką į duomenų bazės aplanką, kuriame yra failas.

Pastaba: SQLiteOpen Helper klasė naudojama duomenų bazės kūrimui ir versijų valdymui valdyti.

Vartotojo klausimai:

Ar DB versijos rezultato pasikeitimas yra SQLite objekto versijos pakeitimas?

Objekto SQLite versija nesikeičia nuo to laiko, kai vienas tvarko / atnaujina duomenų bazę, o kitas žaidžia duomenis, laikomus duomenų bazės lentelėse. Taigi visiškai nėra priklausomybės

Grįžtant atgal, išplėtę „SQLiteopenHelper“ klasę, perrašome šios klasės „Oncreate & OnUpgrade“ metodus. Kai pasiekiama SQLite duomenų bazė, ji kartais gali būti lėta, atsižvelgiant į užklausos sudėtingumą. Visada pageidautina, kad vykdant SQL užklausą būtų išvengta mažiausio poveikio ar užklausų, vykdomų rekursijoje. Taip pat yrarekomenduojama duomenų bazę atlikti sinchroniškai.Šiuos metodus sistema automatiškai valdo arba iškviečia. Taip pat reikia pažymėti, kad kaskart padidinus DB versiją, jis automatiškai iškvies ją į „Upgrade“.

Kai kalbama apie SQLite atvirą pagalbininkų klasę, jos duomenų bazės pavadinimas ir versija bus perduodami išplėstinės klasės konstruktoriuje.

java util logging logger pavyzdys

Čia reikia atsižvelgti į du dalykus:

  • Jei duomenų bazės nėra, iškviečiamas „OnCreate“ () metodas.
  • Jei atnaujinama duomenų bazės versija, iškviečiamas „OnUpgrade“) metodas.

SQLite atvira pagalbininkų klasė pateikia konstruktoriaus vardą ir versiją. Iškviečiama „getwriteabledatabase“) ir, jei duomenų bazės nėra, ji bus „OnCreate“. Tokiu atveju duomenų bazė egzistuoja ir atnaujinta versija, ji iškvies OnUpgrade ().

Ar šie metodai taikomi pirmajam db skambučiui?

Paimkime pavyzdį. Kai įdiegsime programą, ji sukurs „OnCreate“ ir metodas apk bus įkeltas į „Google Play“ parduotuvę. Atsisiuntęs naujausią APK versiją, jis patikrins jau įdiegtą duomenų bazę. Jei jis turi aukštesnę versiją, jis iškvies atnaujinimą, jei ne, tada nieko nedarys.

Vartotojo klausimas

Ar norint atnaujinti db versiją reikia turėti vartotojo leidimą?

Ne, leidimas nereikalingas, nes dirbame su programos ištekliais, todėl nereikia ieškoti leidimo.

Vartotojo klausimas

Jei „user1“ įdiegė mano programą ir tai yra atnaujinta DB versija, o vėliau „user2“ diegia naują programą, o „user1“ atnaujina programą. Esant tokiam scenarijui, jei iškviečiamas vartotojo1 atnaujinant versiją ir iškviečiamas vartotojo2 sukūrimo metodas, ar visi metodai yra iš „Android“?

Taip, nes mes neturime jokios versijos, jau įdiegtos įrenginyje. Nesvarbu, jei į įrenginį nėra įdiegta ankstesnė versija. Tai labai panašu į karkaso valdymą.

Vartotojo klausimas

Ar galime turėti SQLite duomenų bazės objektą? Ką daryti, jei mano db vardas yrakonfliktassu kitu db vardo objektu?

Tai nesvarbu, nes duomenų bazė yra programos paketo pavadinime, kuris neturėtų prieštarauti, net jei buvo sukurtas pakatalogis tuo pačiu pavadinimu. Tai svarbu tik šakniniame lygyje, o šakninio lygio valdymas atliekamas paketo pavadinimo pagalba. Reikia pažymėti, kad negalime turėti dviejų programų su tuo pačiu paketo pavadinimu, tačiau po skirtingais paketais galime turėti 2 skirtingus db pavadinimus. SQLite duomenų bazė rūpinasi objekto pagalba atnaujinimu, ištrynimu, įterpimu, užklausomis ir duomenų bazės operacijų uždarymu bei atidarymu.

Turite mums klausimą? Paminėkite juos komentarų skiltyje ir mes susisieksime su jumis.

Susijusios žinutės: