Loading…

Mein neuer 15 Stunden Android 7 Kurs

Lern Android 7 und Google Firebase
jetzt Loslegen

SQLite mit Kotlin Quickstart Tutorial

SQLite Datenbanken sind für Android Apps ein wichtiger Bestandteil.
Vielen Anfängern fällt es schwer mit diesen Datenbanken zu arbeiten, weil sie doch etwas komplexer sind.
In diesem kleinen Tutorial zeige ich wie man auf einfachste Weise mit diesen Datenbanken arbeiten kann.

Als erstes wird eine Kolping-Datei angelegt, in dieser Datei befindet sich lediglich ein Objekt, das Objekt heißt databaseValues
dies sind die eigentlichen Informationen die unsere Datenbank hat, dabei wird ein kleiner Trick gemacht, der auf den ersten Blick kompliziert aussieht, später aber die Arbeit vereinfacht. In der Datenbank arbeiten wir oft mit Strings.
Es kann beispielsweise sein, dass wir den Namen einer Spalte unserer Datenbank brauchen oder den Tabellennamen. Da sich diese Werte ändern können, ist es wichtig, dass wir Tippfehler unbedingt vermeiden.
Aus diesem Grund arbeiten wir hier mit konstanten Werten.
Wir geben also jedem String einen Variablen Namen, den wir Projekt weit verwenden werden.
Letztendlich wird für den Variablen Namen der durch die Konstante eingesetzt wird,  dann der entsprechende String aus der Konstante verwendet.
Konstanten werden Dauergroß geschrieben.

 

Als nächstes lege ich die Datenklasse an. Die Datenklasse besteht in Kotlin aus nur einer Zeile und durch das Schlüsselwort Data Class wird die Datenklasse deklariert. Die Datenklasse ist das, was man in Java als Objektklasse bezeichnen würde. Es ist also lediglich eine Klasse die in ihren Variablen alle Werte enthält, die ich brauche.

Die eigentliche Arbeit machen wir mit dem DatabaseHelper und dem TableHelper. Als erstes wird der DatabaseHelper geschrieben. Diese Klasse hat mehrere Aufgaben. Als erstes erstellt sie eine Datenbank wenn noch keine existiert oder wenn die Versionsnummer die in dem databaseValues Objekt steckt hoch gezählt wird.
Das hat den Hintergrund, dass man im Quelltext die Versionsnummer seiner Datenbank hinterlegen kann, ändert man die App, so kann man die Datenbank modifizieren. Es kann ja sein, dass in einer neuen Appversion neue Tabellen hinzukommen, die angelegt werden müssen oder die Datenbank umstrukturiert wird. Durch die Versionsnummer kann man dafür sorgen, dass beim Endnutzer auch die Datenbank entsprechend geändert wird.

AB JETZT ARBEITEN WIR IN DER KLASSE: DATABASEHELPER!

Man sieht das hier schon die databaseValues im Kopf der Klasse verwendet werden.

Als nächstes werden Variablen mit einem Kreditstatement angelegt, dabei ist das im Prinzip der SQL Quelltext der ausgeführt werden soll.
Jeder Inhalt dieser Variablen entspricht später einer SQL Abfrage, die ausgeführt werden soll, in dem Beispiel habe ich nur eine und lege dabei eine Tabelle mit dem Namen Job an.

Es macht Sinn auch hier schon die Konstanten zu verwenden wenn ich das ganze umforme, wird aus dem Statement das oben steht das untere.

Jetzt wird eine  onCreate Methode gebraucht diese Methode wird immer dann ausgeführt wenn die Datenbank neu erstellt werden soll, also das erste Mal wenn man die App installiert und ausführt wird.

Die onUpdate Methode wird immer dann ausgeführt, wenn man die Datenbank verändert, also die Versionsnummer um eine Version hochzählt.
Bei mir wird jetzt einfach die alte Tabelle gelöscht und dann die onCreate Methode nochmal aufgerufen die, die Datenbank einfach neu anlegt.
Wenn ich jetzt die Daten der Nutzer erhalten will, muss ich mir je nach Änderung in meiner Datenbank überlegen, wie man die Daten erhalten kann.

Das war es auch schon, was man in dieser Klasse machen muss. Als nächstes wird eine neue Klasse angelegt. Das ist eine Helper Klasse. Für jede Tabelle der Datenbank wird eine Helferklasse angelegt. Diese Klasse hat einfach nur die Aufgabe, die Datenbankoperationen auszuführen. Beim Programmieren ruft man später einfach nur noch die Helferklasse auf und führt die entsprechende Methode aus.

In einer anderen Klasse kann man dann so einen neuen Datensatz einfügen:

Das Ausgeben aller Einträge einer SQLite Tabelle mit Android und Kotlin geht dann z.B mit so einer Methode, die man im TableHelper hinzufügt

Aus einer Android Activity kann man jetzt mit

sich alle Einträge ausgeben lassen.

Will man nur einen Datensatz mit einer ID abrufen geht das z.B mit der unten gezeigten Methode.

Wichtig ist: Hier wird nicht geschaut, ob die Abfrage vlt. mehrere Rückgaben hat.
Das kann zu Fehlern führen. Denn es kann keiner oder der falsche Datensatz zurückgegeben werden.
Aus anderen Activities kann man dann mit:

einen Datensatz abrufen.

Einen bestehenden Datensatz kann man z.B mit SQLite in Kotlin updaten

Ein Datensatz kann dann so gelöscht werden.

Du hast jetzt alle gängigen wichtigen Methoden mal kurz gelernt. Was hier so einfach aussieht, kann man jetzt natürlich noch viel weiter aufbauen.
Generell ist es aber nicht schwierig. Du hast jetzt alle Standardmethoden gelernt, und auch wenn es nicht die sauberste Programmierart wäre, kann man hiermit schon sehr komplexe Apps bauen.
Mit spezifischerer und genauerer SQL Syntax kann man natürlich auch noch viel schöner und eleganter programmieren, aber für den Anfang reicht das so.