Introduksjon til Android SQLite Database



Bloggen gir en introduksjon til Android SQLite Database

Introduksjon til Android SQLite Database

Android SQLite Database krever svært lite minne (rundt 250 kb), som er tilgjengelig på alle Android-enheter. Hver enhet har en innebygd støtte for SQLite-database, som automatisk administreres på Android helt fra opprettelsen, utførelsen til spørringsprosessen.





SQLite er en åpen kildekodedatabase, tilgjengelig på alle android-databaser. Den støtter standarddatabasefunksjoner, som SQL-syntaks, transaksjoner og SQL-setninger. SQLite er betydelig, den lettere versjonen av SQL-database, hvor de fleste SQL-kommandoene ikke kjører på SQLite-database. Når SQLite er på plass, er det viktig å sikre at en funksjon eller kommando er tilgjengelig i SQLite bare da kan den utføres.

De grunnleggende fordelene med SQLite:



  • Det er en lettvektsdatabase
  • Krever veldig lite minne
  • En automatisk administrert database

SQLite støtter bare 3 datatyper:

  • Tekst (som streng) - for lagring av datatypelager
  • Heltall (som int) - for lagring av heltallsnøkkel
  • Ekte (som dobbelt) - for lagring av lange verdier

I utgangspunktet validerer ikke SQLite datatyper av seg selv. Med andre ord, uansett hvilke datatyper som brukes, blir de betegnet som gyldige.

For eksempel, i dette tilfellet har databasen til en kabeloperatør blitt diskutert. Her legges det til en ny tabell med ‘tekst’ i navnefeltet og feltnavnfeltet med ‘tekstfelt’. En datatype for tilfeldig verdi er opprettet. Sluttresultatet er en testtabell med en ugyldig datatype, som viser at SQLite ikke validerer datatypen.



* Man kan finne databasen ved å klikke på pakke og få tilgang til datamappen til databasemappen, som inneholder filen.

Merk: SQLiteOpen Helper-klassen brukes til å administrere databaseopprettelse og versjonsadministrasjon.

Bruker spørsmål:

Er endringen i db-versjonsresultat endring av SQLite-versjonen av objektet?

Det er ingen endring i SQLite-versjonen av objektet siden den ene håndteringen oppretter / oppdaterer databasen, og den andre spiller på data som holdes i tabellene i databasen. Dermed er det ingen avhengighet i det hele tatt

Når vi kommer tilbake, når vi utvider klassen SQLiteopenHelper, overskriver vi Oncreate & OnUpgrade-metodene i denne klassen. Når du får tilgang til SQLite-databasen, kan den noen ganger være treg, avhengig av kompleksiteten i spørringen. Det foretrekkes alltid å sørge for at minst mulig innvirkning eller spørsmål som kjører i rekursjon unngås når en SQL-spørring kjøres. Det er det ogsåanbefales å utføre database synkront.Disse metodene håndteres eller kalles automatisk av rammeverket. Det må også bemerkes at når en øker DB-versjonen, vil den automatisk ringe videre til den.

Når man snakker om SQLite åpen hjelperklasse, blir databasens navn og versjon sendt i konstruktøren av utvidet klasse.

hvordan kaste dobbelt til int

Her skal to ting tas i betraktning:

  • OnCreate () -metoden kalles hvis databasen ikke eksisterer.
  • OnUpgrade () -metoden kalles hvis databaseversjonen er oppdatert.

SQLite åpen hjelperklasse gir navn og versjon i konstruktøren. Getwriteabledatabase () kalles, og hvis databasen ikke eksisterer, vil den OnCreate. I tilfelle databasen eksisterer og versjonen er oppdatert, vil den ringe OnUpgrade ().

Er disse metodene på første anrop til db?

La oss ta et eksempel. Når vi har installert et program, vil det opprette OnCreate og metoden apk lastes opp til Google Play Store. Når den siste versjonen av apk er lastet ned, vil den sjekke databasen som allerede er installert. Hvis den har en høyere versjon, vil den ringe oppgradering, hvis ikke, vil den ikke gjøre noe.

Bruker spørsmål

Er det nødvendig å ha brukertillatelse for å oppgradere db-versjonen?

Nei, tillatelsen er ikke nødvendig, siden vi jobber med applikasjonsressursene, trenger vi ikke å søke tillatelse.

Bruker spørsmål

Hvis bruker1 har installert applikasjonen min og det er en oppgradert versjon for DB, og deretter bruker2 installerer nytt program og bruker1 oppgraderer appen. I et slikt scenario, hvis bruker1 på versjonsoppgradering kalles og for user2 create-metode kalles, er alle metodene fra android?

Ja, fordi vi ikke har noen versjon allerede installert på enheten. Det spiller ingen rolle, så lenge det ikke er noen tidligere versjon installert i enheten. Det er veldig likt rammebehandling.

Bruker spørsmål

Kan vi ha SQLite-databaseobjektet? Hva om db-navnet mitt harkonfliktmed et annet db navn objekt?

Det spiller ingen rolle, fordi databasen ligger på programmets pakkenavn, noe som ikke burde være i konflikt selv om en undermappe med samme navn er opprettet. Det betyr bare på rotnivå, og rotnivåhåndteringen gjøres ved hjelp av pakkenavnet. Det må bemerkes at vi ikke kan ha to applikasjoner med samme pakkenavn, men vi kan ha 2 forskjellige db-navn under forskjellige pakker. SQLite-database tar seg av oppdatering, sletting, innsetting, spørring og lukking og åpning av databaseoperasjoner ved hjelp av objektet.

Har du spørsmål til oss? Nevn dem i kommentarfeltet, så kommer vi tilbake til deg.

Relaterte innlegg: