Johdatus Android SQLite -tietokantaan



Blogi tarjoaa johdannon Android SQLite -tietokantaan

Johdatus Android SQLite -tietokantaan

Android SQLite -tietokanta vaatii hyvin vähän muistia (noin 250 kt), joka on käytettävissä kaikilla Android-laitteilla. Jokaisella laitteella on sisäänrakennettu tuki SQLite-tietokannalle, jota hallitaan automaattisesti androidilla sen luomisesta, suorittamisesta prosessin kyselyyn.



SQLite on avoimen lähdekoodin tietokanta, joka on saatavilla jokaisessa Android-tietokannassa. Se tukee vakiosuhteiden tietokantaominaisuuksia, kuten SQL-syntaksia, tapahtumia ja SQL-käskyjä. SQLite on huomattavasti SQL-tietokannan kevyempi versio, jossa suurin osa SQL-komennoista ei toimi SQLite-tietokannassa. Kun SQLite on paikallaan, on tärkeää varmistaa, että ominaisuus tai komento on käytettävissä SQLite-sovelluksessa vasta sitten, kun se voidaan suorittaa.

SQLiten perusetut:



  • Se on kevyt tietokanta
  • Vaatii hyvin vähän muistia
  • Automaattisesti hallinnoitu tietokanta

SQLite tukee vain kolmea tietotyyppiä:

  • Teksti (kuten merkkijono) - tietotyyppivaraston tallentamiseen
  • Kokonaisluku (kuten int) - kokonaisluvun ensisijaisen avaimen tallentamiseen
  • Todellinen (kuten kaksinkertainen) - pitkien arvojen tallentamiseen

Pohjimmiltaan SQLite ei vahvista tietotyyppejä itsestään. Toisin sanoen riippumatta siitä, mitä tietotyyppejä käytetään, niitä kutsutaan päteviksi.

Esimerkiksi tässä tapauksessa kaapelioperaattorin tietokannasta on keskusteltu. Tässä lisätään uusi taulukko, jossa teksti-kenttä on nimikentässä ja kentän nimi -kentässä, jossa on teksti-kenttä. Satunnaisarvotietotyyppi on luotu. Lopputulos on testitaulukko, jonka tietotyyppi on virheellinen, mikä osoittaa, että SQLite ei vahvista tietotyyppiä.



* Tietokannan voi löytää napsauttamalla pakettia ja siirtymällä tietokansioon tietokantakansioon, joka sisältää tiedoston.

Huomautus: SQLiteOpen Helper -luokkaa käytetään tietokannan luomisen ja versionhallinnan hallintaan.

Käyttäjien kysymykset:

Onko muutos db-version tuloksessa objektin SQLite-version muutos?

Objektin SQLite-versiossa ei ole muutoksia, koska yksi käsittelee tietokannan luomista / päivittämistä, ja toinen toistaa tietokannan taulukoissa olevia tietoja. Siksi ei ole lainkaan riippuvuutta

Palatakseni, kun laajennamme SQLiteopenHelper-luokkaa, korvataan tämän luokan Oncreate & OnUpgrade -menetelmät. Kun SQLite-tietokantaa käytetään, se voi joskus olla hidasta kyselyn monimutkaisuudesta riippuen. On aina suositeltavaa varmistaa, että pienin rekursiossa esiintyvä vaikutus tai kyselyt vältetään, kun SQL-kysely suoritetaan. Se on myössuositeltavaa suorittaa tietokanta synkronisesti.Kehys käsittelee tai kutsuu näitä menetelmiä automaattisesti. On myös huomattava, että aina kun lisätään DB-versiota, se kutsuu automaattisesti onUpgrade sitä.

Aina kun puhutaan SQLite: n avoimesta auttajaluokasta, sen tietokannan nimi ja versio välitetään laajennetun luokan konstruktorissa.

Tässä on otettava huomioon kaksi asiaa:

  • OnCreate () -menetelmää kutsutaan, jos tietokantaa ei ole.
  • OnUpgrade () -menetelmää kutsutaan, jos tietokannan versio päivitetään.

SQLite open helper -luokka antaa nimen ja version konstruktorissa. Getwriteabledatabase () kutsutaan, ja jos tietokantaa ei ole, se luo OnCreate. Jos siinä tapauksessa tietokanta on olemassa ja versio päivitetty, se kutsuu OnUpgrade ().

Ovatko nämä menetelmät db: n ensimmäisessä puhelussa?

Otetaanpa esimerkki. Kun olemme asentaneet sovelluksen, se luo OnCreate-sovelluksen ja menetelmä apk ladataan Google Play -kaupaan. Kun apk-sovelluksen viimeisin versio on ladattu, se tarkistaa jo asennetun tietokannan. Jos sillä on korkeampi versio, se kutsuu päivityksen, jos ei, se ei tee mitään.

Käyttäjän kysymys

Onko DB-version päivittämiseen vaadittava käyttäjän lupa?

Ei, lupaa ei vaadita, koska työskentelemme sovellusresurssien parissa, meidän ei tarvitse hakea lupaa.

Käyttäjän kysymys

Jos käyttäjä1 on asentanut sovellukseni ja se on päivitetty versio DB: lle ja myöhemmin käyttäjä2 asentaa uutta sovellusta ja käyttäjä1 päivittää sovellusta. Jos tällaisessa tilanteessa kutsutaan version1 päivityskäyttäjä1 ja kutsutaan käyttäjä2: n luomistapaa, ovatko kaikki menetelmät androidilta?

Kyllä, koska laitteeseen ei ole vielä asennettu mitään versiota. Sillä ei ole merkitystä, kunhan laitteeseen ei ole asennettu aikaisempaa versiota. Se on hyvin kuin kehysten käsittely.

Käyttäjän kysymys

Voimmeko saada SQLite-tietokantaobjektin? Entä jos db-nimelläni onkonfliktitoisen db-nimiobjektin kanssa?

yhdistä lajittelutoteutus c ++

Sillä ei ole merkitystä, koska tietokanta sijaitsee sovelluksen pakettinimessä, mikä ei saa olla ristiriitaista, vaikka samanniminen alikansio olisi luotu. Sillä on merkitystä vain juuritasolla, ja juuritason käsittely tapahtuu paketin nimen avulla. On huomattava, että meillä ei voi olla kahta sovellusta samalla paketin nimellä, mutta meillä voi olla 2 erilaista db nimeä eri paketeissa. SQLite-tietokanta huolehtii päivityksestä, poistamisesta, lisäyksestä, kyselyistä sekä tietokantatoimintojen sulkemisesta ja avaamisesta objektin avulla.

Onko sinulla kysymys meille? Mainitse ne kommenttiosassa ja palaamme sinuun.

Aiheeseen liittyvät julkaisut: