KIO
Kreative Ideen online

Android speichert Daten in der SQLite-Datenbank.

Warum SQLite?

  • Seine lightweight
    SQLite Datenbank ist nur eine Datei. Wenn es nicht verwendet wird, verbraucht es keine Prozessorzeit.
  • Es ist für einen einzelnen Benutzer o
    ptimiertIhre App ist das einzige, was mit der Datenbank spricht, so dass Sie sich nicht mit einem Benutzernamen und Passwort identifizieren müssen
  • Es ist stabil und fast
    SQLite Datenbanken sind stabel.

Wo wird die Datenbank gespeichert?

Android erstellt automatisch einen Ordner für jede App, in dem die Datenbankkabine der App gespeichert wird. Wenn wir eine Databse erstellen, wird sie im folgenden Ordner auf dem Gerät/daten/date
n/com.mydomain.myappname/databases gespeichert.

Jede Datenbank besteht aus zwei Dateien. Die erste Datei ist die Daase-Datei und hat den gleichen Namen wie Ihre Datenbank – zum Beispiel "myapp". Dies ist die Hauptdatenbankdatei von SQLite. Alle Ihre Daten werden in dieser Datei gespeich
ert. Die zweite Datei ist die Journaldatei. Es hat den gleichen Namen wie Ihre Datenbank, mit dem Suffix "-journal" – zum Beispiel "myapp-journal".

Die Journaldatei enthält alle an der Datenbank vorgenommenen Änderungen. Wenn es ein Problem gibt, wird Android das Journal verwenden, um Ihre neuesten Änderungen zu tun.

Android verwendet eine Reihe von Fo-Klassen, die Sie zum Verwalten einer SQLite-Datenbank verwenden. Es gibt Objekttypen, die den Großteil dieser Arbeit erledigen:

  • Mit dem SQLite He
    lperA SQHLite-Helfer können Sie Daten erstellen und verwalten. Sie haben eins erstellt, indem Sie die SQLiteOpenHelper-Klasse erweitern.
  • THe SQLite DatabaseD
    ie SQLiteDatabase-Klasse gibt Ihnen Zugriff auf die databse.
  • CursorsEin
    Cursor ermöglicht es Ihnen, aus der Datase zu lesen und in sie zu schreiben.

Hier sind die wichtigsten Datentypen, die Sie in SQLite verwenden können, und was sie speichern können:

GanzzahlJeder ganzzahlige Typ
TextBeliebiger Zeichentyp
REAL NUMERICGleitkommazahl, Booleans, Datumsangaben und Datumsangaben
BlobBinäres großes Objekt

Im Gegensatz zu den meisten Datenbanksystemen müssen Sie die Spaltengröße in SQLite nicht angeben.

Sie erstellen Tabellen mit Structured Query Language

Sql
ERSTELLEN SIE DIE TABELLE DRINK (_ID INTEGER PRIMÄRSCHLÜSSEL AUTOINCREMENT, NAMENSTEXT, BESCHREIBUNGSTEXT, IMAGE_RESOURCE_ID INTEGER)

Der SQLite-Helfer ist für die Erstellung der SQLite-Datenbank verantwortlich. Eine leere Datenbank wird auf dem Gerät erstellt, wenn es zum ersten Mal verwendet werden muss, und dann wird die onCreate()-Methode des SQLite-Helfers aufgerufen. Die onCreate()-Methode verfügt über einen Parameter, ein SQLiteDatabase-Objekt, das die erstellte Datenbank darstellt.

Die SQLiteDatabase-Klasse gibt Ihnen Zugriff auf die Datenbank.

Sie können die SQLiteDatabase execSQL()-Methode verwenden, um SQL in der Datenbank zu execude. Diese Methode verfügt über einen Parameter, den SQL, den Sie ausführen möchten.

executeSQL(String sql);

Um Daten in eine Tabelle in einer SQLite-Datenbank einzufügen, geben Sie zunächst an, welche Werte Sie in die Tabelle einfügen möchten. Dazu erstellen Sie zunächst ein ContentValues-Objekt
:ContentValues objValues = new ContentValues();

Ein ContentValues-Objekt beschreibt einen Satz von Daten. Sie erstellen normalerweise ein neues ConentValues-Objekt für jede Datenzeile, die Sie nicht erstellen möch
ten. Sie fügen dem ContentValues-Objekt mithilfe der put()-Methode Daten hinzu. Diese Methode fügt Name/Wert-Paare von Daten hinzu: NAME ist die Spalte, der Sie Daten hinzufügen möchten, und Wert ist die Daten:

objValues.put("NAME", "value");

Nachdem Sie dem ContentValues-Objekt eine Datenzeile hinzugefügt haben, fügen Sie sie mithilfe der SQLiteDatabase insert()-Methode in die Tabelle ein. Diese Methode fügt Daten in eine Tabelle ein und gibt die ID des Datensatzes zurück, nachdem er eingefügt wurde:

db.insert("SOMETABLE", null, objValues);

Der mittlere Parameter wird in der Regel auf null gesetzt, wie im obigen Code. Sie ist vorhanden, falls das ContentValues-Objekt leer ist und Sie eine leere Zeile in die Tabelle einfügen möchten.

Um mehrere Zeilen in eine Tabelle einzufügen, müssen Sie wiederholungsbeverfahren e.a. die insert()-Methode aufrufen. Jeder Aufruf der Methode fügt eine separate Zeile ein. Um mehrere Zeilen einzufügen, erstellen Sie in der Regel eine neue Methode, die eine einzelne Datenzeile einfügt, und rufen sie jedes Mal auf, wenn Sie eine neue Zeile hinzufügen möchten.

Private statische void insertDrink(SQLiteDatabse db,String name, String description, int resourceId)
ContentValues objValues = neue ContentValues();
objValues.put("NAME", Name);
objValues.put("BESCHREIBUNG", Beschreibung);
objValues.put("IMAGE_RESOURCE_ID", resourceId);
db.insert("SOMETABLE", null, objValues);
}

insertDrink(db, "Latte", "Espresso und gedämpfte Milch", R.drawable.latte);
insertDrink(db, "Cappuccino", "Espresso und heiße Milch", R.drawable.latte);

Aktualisieren von Datensätzen mit der update()-Methode

Mit der update()-Methode können Sie Datensätze in der Datenbank aktualisieren und die Anzahl der aktualisierten Datensätze zurücksetzen. Um die update()-Methode zu verwenden, geben Sie die Tabelle an, in der Sie Datensätze aktualisieren möchten, das ContentValues-Objekt.

ContentValues objValues = neue ConentValues();
objValues.put("BESCHREIBUNG", "Tasty");
db.update("SOMETABLE",objValues, "NAME = ?", neue Zeichenfolge[] "Latte"");

Der erste Parameter der update()-Methode ist der Name der Tabelle, die Sie aktualisieren möchten (in diesem Fall die SOMETABLE-Tabelle). Der zweite Pa
rameter ist das ContentValues-Objekt, das die Werte beschreibt, die Sie aktualisieren möchten. Die letzten beiden P
arameter geben an, welche Datensätze aktualisiert werden sollen, indem die Bedingungen für die Aktualisierung beschrieben werden. Um sie zu erstellen, bilden sie die WHERE-Klausel einer SQL-Anweisung. Der dritte Parameter gibt den Namen der Spalte in der Bedingung an. Im obigen Beispiel möchten wir Die Recors aktualisieren, bei denen der Wert des NAME-Kollumns "Latte" ist, daher verwenden wir "NAME =?"; es bedeutet, dass der Wert in der NAME-Spalte eqal zu einem bestimmten Wert sein soll. das? symbo ist ein Platzhalter für diesen Wert. Der letzte Parameter ist ein Array von Strings, das sagt, wie der Wert der Bedingung sein soll.

Wenn Sie die letzten beiden Parameter der update()-Methode auf null setzen, werden ALLE Datensätze in der Tabelle aktualisiert.

Als Beispiel:

db.update("SOMETABLE", objValues,null, null);

aktualisiert alle Datensätze in der SOMETABLE-Tabelle.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert