Introductie op Android SQLite Database



De blog biedt een inleiding tot Android SQLite Database

Introductie op Android SQLite Database

De Android SQLite Database vereist zeer weinig geheugen (ongeveer 250kb), dat beschikbaar is op alle Android-apparaten. Elk apparaat heeft een ingebouwde ondersteuning voor de SQLite-database, die automatisch wordt beheerd op Android vanaf het maken, uitvoeren tot het opvragen.





SQLite is een open source-database, beschikbaar op elke Android-database. Het ondersteunt standaard functies voor de relatiedatabase, zoals SQL-syntaxis, transacties en SQL-instructies. SQLite is aanzienlijk, de lichtere versie van de SQL-database, waarbij de meeste SQL-opdrachten niet op de SQLite-database worden uitgevoerd. Zodra SQLite op zijn plaats is, is het belangrijk om ervoor te zorgen dat een functie of commando alleen beschikbaar is in SQLite als het kan worden uitgevoerd.

De basisvoordelen van SQLite:



  • Het is een lichtgewicht database
  • Vereist heel weinig geheugen
  • Een automatisch beheerde database

De SQLite ondersteunt slechts 3 datatypes:

methode overbelasting en methode overschrijven in java
  • Tekst (zoals tekenreeks) - voor het opslaan van het gegevenstype
  • Geheel getal (zoals int) - voor het opslaan van de primaire sleutel van een geheel getal
  • Echt (zoals dubbel) - voor het opslaan van lange waarden

In principe valideert SQLite zelf geen datatypes. Met andere woorden, welke datatypes er ook worden gebruikt, ze worden als geldig genoemd.

In dit geval is bijvoorbeeld de database van een kabelexploitant besproken. Hier wordt een nieuwe tabel toegevoegd met ‘tekst’ in het naamveld en veldnaamvak met ‘tekstveld’. Er is een datatype met een willekeurige waarde gemaakt. Het eindresultaat is een testtabel met een ongeldig datatype, waaruit blijkt dat SQLite geen datatype valideert.



* Men kan de database vinden door op pakket te klikken en de datamap te openen naar de databasemap, die het bestand bevat.

Opmerking: de klasse SQLiteOpen Helper wordt gebruikt om het maken van databases en versiebeheer te beheren.

Gebruikersvragen:

Is de wijziging in de DB-versie het resultaat een wijziging van de SQLite-versie van het object?

Er is geen verandering in de SQLite-versie van het object sinds de ene het maken / bijwerken van de database afhandelt, en de andere speelt met gegevens die in de tabellen van de database worden bewaard. Daardoor is er helemaal geen afhankelijkheid

Terugkomend: wanneer we de SQLiteopenHelper-klasse uitbreiden, overschrijven we de Oncreate & OnUpgrade-methoden in deze klasse. Wanneer de SQLite-database wordt geopend, kan deze soms traag zijn, afhankelijk van de complexiteit van de query. Het verdient altijd de voorkeur om ervoor te zorgen dat de minste impact of queries die in recursie worden uitgevoerd, worden vermeden wanneer een SQL-query wordt uitgevoerd. Het is ookaanbevolen om database synchroon uit te voeren.Deze methoden worden automatisch afgehandeld of aangeroepen door het framework. Er moet ook worden opgemerkt dat wanneer men de DB-versie verhoogt, deze automatisch onUpgrade ernaar zal oproepen.

Telkens wanneer iemand het heeft over de open helper-klasse van SQLite, worden de databasenaam en -versie ervan doorgegeven in de constructor van de uitgebreide klasse.

Hierbij dient met twee zaken rekening te worden gehouden:

  • De methode OnCreate () wordt aangeroepen als de database niet bestaat.
  • De methode OnUpgrade () wordt aangeroepen als de databaseversie is bijgewerkt.

De SQLite open helper class geeft de naam en versie in de constructor. De getwriteabledatabase () wordt aangeroepen en als de database niet bestaat, zal deze OnCreate. Als de database bestaat en de versie is bijgewerkt, wordt OnUpgrade () aangeroepen.

Zijn deze methoden op firstcall van db?

Laten we een voorbeeld nemen. Zodra we een applicatie hebben geïnstalleerd, wordt OnCreate gemaakt en wordt de methode apk geüpload naar de Google Play Store. Zodra de nieuwste versie van de apk is gedownload, wordt de reeds geïnstalleerde database gecontroleerd. Als het een hogere versie heeft, wordt upgrade aangeroepen, zo niet, dan zal het niets doen.

Gebruikersvraag

zet string om naar array php

Is het vereist om gebruikersmachtiging te hebben om de db-versie te upgraden?

Nee, de toestemming is niet vereist, aangezien we aan de toepassingsbronnen werken, hoeven we geen toestemming te vragen.

Gebruikersvraag

Als gebruiker1 mijn applicatie heeft geïnstalleerd en het is een bijgewerkte versie voor DB en vervolgens gebruiker2 een nieuwe applicatie installeert en gebruiker1 de app upgradet. Als in een dergelijk scenario user1 op versie-upgrade wordt aangeroepen en voor user2 create-methode wordt aangeroepen, zijn alle methoden dan afkomstig van android?

Ja, want er is nog geen versie op het apparaat geïnstalleerd. Het maakt niet uit, zolang er geen eerdere versie op het apparaat is geïnstalleerd. Het lijkt veel op het afhandelen van frames.

Gebruikersvraag

Kunnen we het SQLite-databaseobject hebben? Wat als mijn db-naam heeftconflictmet een ander db-naamobject?

Het maakt niet uit, omdat de database zich op de pakketnaam van de applicatie bevindt, wat geen conflict zou moeten zijn, zelfs niet als er een submap met dezelfde naam is gemaakt. Het is alleen van belang op rootniveau en de afhandeling op rootniveau wordt gedaan met behulp van de pakketnaam. Opgemerkt moet worden dat we niet twee applicaties met dezelfde pakketnaam kunnen hebben, maar we kunnen wel twee verschillende db-namen hebben onder verschillende pakketten. SQLite-database zorgt voor het bijwerken, verwijderen, invoegen, opvragen en sluiten en openen van databasebewerkingen met behulp van het object.

Heeft u een vraag voor ons? Noem ze in het opmerkingengedeelte en we nemen contact met u op.

hoe scannerklasse te gebruiken in java

Gerelateerde berichten: