android sqlite main_wowomnom_Fotolia_85154667

Das Android SQLite Datenbank Tutorial


In diesem Tutorial entwickeln wir eine Android™ App, in die wir eine SQLite Datenbank integrieren.

In dem mehrteiligen Android SQLite Tutorial wird eine App schrittweise entwickelt, die für das Speichern und Auslesen ihrer Daten das SQLite Datenbanksystem verwendet.

Als SQLite Anwendung werden wir eine Einkaufslisten-App programmieren. Die Funktion der App ist sehr einfach. Der User kann in eine Einkaufsliste die zu kaufenden Produkte eintragen und welche Menge jeweils gekauft werden soll.

Die eingetragenen Daten werden in einer Android SQLite Datenbank gespeichert und beim Erzeugen der Einkaufsliste wieder aus der Datenbank ausgelesen.

Die Android SQLite-App wird Lektion für Lektion entstehen und dabei schrittweise neue Funktionen erhalten, daher sollten die Lektionen unbedingt der Reihe nach absolviert und kein Arbeitsschritt übersprungen werden.

Auf dieser Übersichtsseite des Android SQLite Tutorials stellen wir die einzelnen Lektionen kurz vor. Wir empfehlen die Beschreibungen der einzelnen Lektionen zu lesen und anschließend mit der Lektion zu beginnen. Ihr könnt aber auch per Schnellzugriff direkt zur jeweiligen Tutorial Lektion springen.

Schnellzugriff auf die Lektionen des Android SQLite Tutorials


1. Was ist SQLite und wie ist es in Android integriert?

SQLite ist eine Programmbibliothek, welche ein relationales Datenbanksystem enthält.

Das Open Source Datenbanksystem unterstützt eine Vielzahl der SQL-Sprachbefehle und wurde vor allem für den Einsatz in eingebetteten Umgebungen entworfen.

Besonders häufig wird das Datenbanksystem SQLite auf Betriebssystemen für Smartphones und Tablets eingesetzt, bspw. Symbian OS oder Android.

Der große Vorteil des SQLite Datenbanksystems ist der minimale Aufbau der Bibliothek. Die gesamte SQLite-Bibliothek ist nur einige hundert Kilobyte groß und lässt sich direkt in die Android Anwendung integrieren. Es wird keine weitere Server-Software benötigt.

Durch das Einbinden der SQLite-Bibliothek wird eine Android App um sehr nützliche Datenbankfunktionen erweitert, ohne auf externe Software angewiesen zu sein. Die SQLite-Datenbank besteht aus einer einzigen Datei, die alle Tabellen, Indizes usw. enthält.

1.1 Wie ist SQLite in das Android System integriert?

In Android ist das SQLite Datenbanksystem fester Bestandteil der Laufzeitumgebung. Dadurch kann jede Android App sehr einfach und effizient Daten in Form einer Datenbank ablegen und auslesen.

Das Einrichten und die Administration der Datenbank wird von Android übernommen. Wir müssen nur mit Hilfe von SQL-Anweisungen die Datenbank anlegen und updaten. Anschließend wird die Datenbank automatisch vom Android System verwaltet.

Die Klassen, die für das Einbinden einer SQLite-Datenbank in einer Android App benötigt werden, sind in dem Package android.database.sqlite zusammengefasst. Wir werden in diesem Android SQLite Tutorial die Klasse SQLiteOpenHelper verwenden und dabei näher kennenlernen.

2. Lernziele des Android SQLite Tutorials

In diesem Android SQLite Tutorial lernt ihr das SQLite Datenbanksystem effektiv und sicher zu nutzen. Das Erlernte könnt ihr auch in anderen Anwendungsgebieten wiederverwenden, bspw. indem ihr in eure eigene Android App eine SQLite Datenbank einbindet.

android sqlite app ui

Unsere SQLite Datenbank App

Wir programmieren im Rahmen dieses Tutorials zusammen eine Einkaufslisten-App mit der Entwicklungsumgebung Android Studio.

Mit der programmierten SQLite-App wird es möglich sein eine virtuelle Einkaufsliste zu erstellen.

Dabei lernt ihr, wie man eine SQL-Datenbank erzeugt, Datensätze in die Datenbank schreibt und wieder auslest.

Später werden wir auch das Löschen und Verändern von Datensätzen vorstellen.

Am Ende dieses Android SQLite Datenbank Tutorials kennt ihr die Grundlagen der Datenbank-basierten Android App Entwicklung, versteht die Prinzipien und Vorgehensweisen bei der Arbeit mit dem SQLite Datenbanksystem und könnt die Entwicklungswerkzeuge gekonnt einsetzen.

Ihr habt die größten Herausforderungen bei der Entwicklung von SQLite Anwendungen kennengelernt und habt sie gemeistert.

Ziel des Android Kurses ist es euch zu vermitteln wie man eine Android SQLite Datenbank Anwendung entwickelt, die für die Benutzer eine großartige Erfahrung ist und dass ihr mit dem erlernten Wissen über das Einbinden der SQLite Datenbank in Android gut gerüstet für eure eigenen Android Projekte seid.

In dem folgenden Video ist unsere Einkaufslisten-App in Aktion zu sehen:

Die SQLite App ist so konzipiert, dass der Lernstoff möglichst gut vermittelt werden kann. Dabei stehen die Themen für das Verwenden einer SQLite Datenbank immer im Vordergrund. Aber auch weitere Themen werden angeschnitten, wie bspw. der Activity Lifecycle von Android oder der OnClicklistener zum Erfassen von Benutzereingaben.

3. Welche Vorkenntnisse und Voraussetzungen werden benötigt?

Da Android Apps in der Programmiersprache Java programmiert werden, ist es notwendig, dass ihr erste Erfahrungen mit Java oder einer objektorientierten Programmiersprache bereits gemacht habt.

In unserem Java-Kurs könnt ihr die Sprache Java lernen oder bereits erlangtes Wissen erneuern bzw. vertiefen.

Da wir eine SQLite-Anwendung entwickeln werden, ist es hilfreich, wenn ihr bereits über etwas Erfahrung mit der Sprache SQL (Structured Query Language) verfügt. Dies ist wichtig, da das SQLite Datenbanksystem eine Vielzahl der SQL-Sprachbefehle unterstützt.

Die App werden wir mit Hilfe der Entwicklungsumgebung Android Studio entwickeln. Daher ist es notwendig, dass ihr Android Studio auf eurem PC installiert habt. Falls ihr Hilfe bei der Installation von Android Studio benötigt, könnt ihr diesen Beitrag nutzen: Android Studio 1 installieren.

Weiterhin ist es sehr hilfreich, wenn ihr ein Android Smartphone oder Tablet besitzt. Dies ist aber nicht unbedingt erforderlich, da die entwickelte Android App sowohl auf einem Android Gerät als auch auf dem Android Emulator getestet und ausgeführt werden kann.

4. Inhalt des Android SQLite Tutorials

Das Android SQLite Datenbank Tutorial ist in mehrere Lektionen unterteilt, in denen jeweils ein ganz bestimmter Bereich des Android SQLite Datenbanksystems behandelt wird.

Die Reihenfolge der Lektionen muss zwingend eingehalten werden, da die Android App von Lektion zu Lektion weiterentwickelt wird und nachfolgende Lektionen auf Vorherigen aufbauen. Weiterhin bilden die ersten beiden Lektionen die Grundlage des Tutorials und sollten unbedingt in Ruhe ausgeführt werden.

Die späteren Lektionen fügen der SQLite-App dann immer eine neue Funktion hinzu und führen dadurch tiefer in die SQLite-Materie ein.

Lektion 1: Das SQLite Projekt in Android Studio anlegen

android sqlite projekt elemente

Anlegen des Android SQLite Projekts in Android Studio

In der ersten Lektion unseres SQLite Tutorials werden wir zunächst das Android Studio Projekt anlegen und anschließend die grundlegende Struktur unserer Anwendung definieren.

Als Erstes werden wir das Projekt in Android Studio angelegen. Dazu werden wir den New Project-Wizard der Android Entwicklungsumgebung nutzen und mit seiner Hilfe ein Blank Activity-Projekt erstellen.

Anschließend definieren wir die benötigten String-Konstanten in der strings.xml Datei und nehmen Anpassungen an dem Erscheinungsbild unserer App in der styles.xml Datei vor.

Danach werden wir das Layout unserer SQLite App in der Layout-Ressourcen Datei unserer MainActivity definieren, so dass die User später Einträge in die SQLite Datenbank mit Hilfe der grafischen Benutzeroberfläche vornehmen können.

Als letzten Arbeitsschritt werden wir die Android App auf einem Android Gerät ausführen und dabei das Layout der grafischen Benutzeroberfläche der Anwendung überprüfen.

Lektion 2: Integrieren einer SQLite Datenbank in Android

In der zweiten Lektion unseres Android SQLite Tutorials werden wir das Rahmenwerk der SQLite Datenbank Anwendung erstellen.

Dazu werden wir die folgenden drei Java-Klassen mit Hilfe von Android Studio anlegen:

  • ShoppingMemo – Instanzen dieser Klasse können die Daten eines SQLite-Datensatzes aufnehmen. Sie repräsentieren die Datensätze im Code. Wir werden mit Objekten dieser Klasse den ListView füllen.
  • ShoppingMemoDbHelper– Sie ist eine Hilfsklasse mit deren Hilfe wir die SQLite-Datenbank erstellen lassen. Sie enthält weiterhin wichtige Konstanten, die wir für die Arbeit mit der Datenbank benötigen, wie den Tabellennamen, die Datenbankversion oder die Namen der Spalten.
  • ShoppingMemoDataSource– Diese Klasse ist unser Data Access Object und für das Verwalten der Daten verantwortlich. Es unterhält die Datenbankverbindung und ist für das Hinzufügen, Auslesen und Löschen von Datensätzen zuständig. Außerdem wandelt es Datensätze in Java-Objekte für uns um, so dass der Code unserer Benutzeroberfläche nicht direkt mit den Datensätzen arbeiten muss.
android sqlite datenbank

Beziehungen der Klassen unserer SQLite-App

Jede dieser Klassen übernimmt eine bestimmte Aufgabe bei der Arbeit mit dem SQLite Datenbanksystem.

In der Abbildung rechts sind die Beziehungen der Klassen unserer Android App schematisch dargestellt. Zur besseren Übersicht wurden kurze Klassennamen verwendet.

Doch bevor wir die Klassen anlegen, werden wir uns ausführlich mit dem SQLite Datenbanksystem befassen und dabei auch auf die Frage eingehen, wie SQLite in das Android System integriert ist.

Anschließend beschreiben wir auf welche Art die SQLite Datenbank in unsere Einkaufslisten-App integriert werden soll. Dabei gehen wir auch auf die drei zu erstellenden Java-Klassen näher ein.

Am Ende der Lektion werden wir überprüfen, ob die neuen Klassen ordnungsgemäß angelegt wurden und dazu die Log-Meldungen in Android Studio überwachen.

Lektion 3: Erstellen einer Tabelle in die SQLite Datenbank

In der dritten Lektion unseres Android SQLite Tutorials werden wir eine Tabelle in die Datenbank einfügen. Dazu werden wir Änderungen an den folgenden drei Projektdateien vornehmen:

  • MainActivity – In dieser Klasse werden wir unsere Datenquelle öffnen und wieder schließen. Später werden wir von hier aus alle Datenbankzugriffe mit Hilfe der Datenquelle steuern.
  • ShoppingMemoDataSource – Sie ist unsere Datenquelle und besitzt daher eine dauerhafte Verbindung zur SQLite Datenbank. In dieser Lektion werden wir die Verbindung zur Datenbank herstellen und damit das Erstellen der Tabelle anstoßen.
  • ShoppingMemoDbHelper – Diese Klasse ist unsere Hilfsklasse und von der SQLiteOpenHelper-Klasse abgeleitet. Mit ihrer Hilfe werden wir die Tabelle in die Datenbank erstellen. Vorher legen wir aber die wichtigsten Datenbank- und Tabellen-Eigenschaften in String-Konstanten in dieser Klasse fest.

Unsere vorgenommenen Änderungen werden wir am Ende dieser Lektion überprüfen. Dazu führen wir unsere SQLite-App aus und analysieren die Log-Meldungen in Android Studio, siehe folgende Abbildung.

android sqlite log

Zweites Ausführen der SQLite-App – Überprüfen der Log-Meldungen in Android Studio mit aktivem Log-Filter

Am Ende der dritten Lektion werden wir eine Tabelle in die SQLite Datenbank unserer Android App eingefügt haben. In die erstellte Tabelle können wir nun Datensätze einfügen und wieder auslesen.

Lektion 4: Daten in die SQLite Datenbank schreiben und auslesen

android sqlite database app

Unsere SQLite Datenbank App zeigt den Inhalt ihrer Datenbank an

In der vierten Lektion unseres Android SQLite Tutorials werden wir erstmals Daten in die Tabelle unserer SQLite Datenbank schreiben.

Die eingetragenen Datensätze werden wir anschließend wieder aus der Datenbank auslesen und in dem ListView der MainActivity anzeigen.

Dazu werden wir Änderungen an den beiden folgenden Projektdateien vornehmen:

  • ShoppingMemoDataSource – Wir benutzen diese Klasse als Datenquelle, die eine Verbindung zur SQLite Datenbank aufrecht hält und für alle Lese- und Schreib-Zugriffe verantwortlich ist. Wir werden drei Methoden definieren, mit denen wir Daten in die Datenbank schreiben und aus ihr wieder auslesen können.
  • MainActivity – Mit unserer Hauptklasse steuern wir die Datenbankzugriffe und verwalten die Elemente der grafischen Benutzeroberfläche unserer SQLite App. Wir werden von der MainActivity aus Daten in die SQLite Datenbank schreiben und auslesen lassen.

Unsere vorgenommenen Änderungen werden wir am Ende der Lektion wieder überprüfen. Dazu führen wir unsere SQLite-App aus und analysieren die Log-Meldungen in Android Studio, siehe folgende Abbildung.

android sqlite logcat meldung

Ausführen der SQLite-App – Überprüfen der Log-Meldungen in Android Studio mit aktivem Log-Filter

Die vierten Lektion ist ein großer Entwicklungsschritt für unsere Android SQLite App. Nach Abschluss der vierten Lektion wird unsere Einkaufslisten-App in der Lage sein, Daten in die Datenbank zu schreiben, diese auszulesen und auf dem Display auszugeben.

Lektion 5: Mit der SQLite App auf Benutzereingaben reagieren

android sqlite app ui

Unsere SQLite Datenbank App zeigt den über die UI eingetragenen Inhalt ihrer Datenbank an

In der fünften Lektion unseres Android SQLite Tutorials werden wir die grafische Benutzeroberfläche überarbeiten.

Momentan reagiert sie noch nicht auf Eingaben der Nutzer. Dies werden wir ändern und für den Add-Button einen OnClickListener registrieren.

Mit dem OnClickListener prüfen wir, ob der Button vom Benutzer angeklickt wurde. Um auf die Benutzereingabe zu reagieren, überschreiben wir die onClick() Methode des OnClickListeners.

In der Methode werden wir die EditText-Felder auslesen und ihre Inhalte in die SQLite Datenbank schreiben.

Weiterhin werden wir in der fünften Lektion den Quellcode der MainActivity umstrukturieren. Wir fügen die zwei Lifecycle-Callbacks onResume() und onPause() der Klasse hinzu.

Mit den beiden Callback-Methoden werden wir die Verbindung zur SQLite Datenbank verwalten.

Unsere vorgenommenen Änderungen werden wir am Ende der Lektion wieder überprüfen. Dazu führen wir unsere SQLite-App aus und analysieren die Log-Meldungen in Android Studio, siehe folgende Abbildung.

android sqlite onclicklistener log

Ausführen der SQLite-App – Überprüfen der Log-Meldungen in Android Studio mit aktivem Log-Filter

Mit Abschluss der fünften Lektion des SQLite Tutorials wird unsere Android App erstmals über das User Interface nutzbar sein. Wir können Werte über die Textfelder und den Button in die SQLite Datenbank eintragen, die uns anschließend im ListView auf dem Display ausgegeben werden.

Lektion 6: Daten mit Hilfe der Contextual Action Bar aus der SQLite Datenbank löschen

In der sechsten Lektion unseres Android SQLite Tutorials werden wir unserer App eine Contextual Action Bar hinzufügen und mit ihrer Hilfe Datensätze aus der SQLite Datenbank löschen.

Bevor wir Änderungen an den Dateien unseres SQLite Projekts vornehmen, werden wir uns kurz mit der Theorie beschäftigen. Dabei werden wir die folgenden beiden Fragen beantworten:

  • Wie werden Daten aus der SQLite Datenbank gelöscht?
  • Was ist die Contextual Action Bar (CAB) von Android?

Anschließend werden wir ein Menü für die Contextual Action Bar anlegen und für das Menü eine String-Konstante in der strings.xml Ressourcen-Datei definieren.

Danach überarbeiten wir den Quellcode der ShoppingMemoDataSource-Klasse. Wir fügen ihr eine Lösch-Funktion hinzu, um Datensätze aus der SQLite Datenbank löschen zu können.

Die größten Änderungen am Quellcode werden wir dann an der MainActivity-Klasse vornehmen. In ihr initialisieren wir die Contextual Action Bar und registrieren einen MultiChoiceModeListener für den ListView. Über die Contextual Action Bar wird es dann möglich sein Einträge aus der SQLite Datenbank zu löschen.

Die folgende Abbildung zeigt den Ablauf einer Lösch-Aktion in unserer SQLite App:

android sqlite cab delete

Einträge aus der SQLite Datenbank mit Hilfe der Contextual Action Bar löschen

Abschließend werden wir unsere SQLite App auf einem Android Smartphone installieren und testen. Dabei werden wir mehrere Datensätze gleichzeitig mit Hilfe der Contextual Action Bar aus der SQLite Datenbank entfernen und die Log-Meldungen analysieren.

Lektion 7: Daten mit Hilfe der Contextual Action Bar in der SQLite Datenbank ändern

In der siebten Lektion unseres mehrteiligen Android SQLite Tutorials werden wir unserer Android App eine weitere Funktion hinzufügen.

Mit der neuen Funktion sollen Datensätze in der SQLite Datenbank geändert werden können. Das Ändern wird über die Contextual Action Bar ausgelöst und die geänderten Daten werden mit Hilfe eines eingeblendeten Dialogs erfasst.

Um dies zu realisieren, werden wir die folgenden Arbeitsschritte durchführen:

  1. Anlegen der benötigten String-Konstanten in der strings.xml Ressourcen-Datei.
  2. Definieren eines weiteren Action Items in der Menü-Datei der Contextual Action Bar.
  3. Erstellen der Layout-Datei für den eingeblendeten EditShoppingMemo-Dialog.
  4. Erweitern unserer Datenquelle (DataSource) um die updateShoppingMemo() Methode.
  5. Erweitern der Callback-Methoden der Contextual Action Bar in der MainActivity-Klasse.

Anschließend werden wir unsere SQLite App ausführen und testen. Wir werden Datensätze in der Tabelle der SQLite Datenbank ändern und dabei auch wieder die Log-Meldungen unserer Anwendung analysieren.

android sqlite update

Einträge der SQLite Datenbank mit Hilfe der Contextual Action Bar ändern

Bevor wir jedoch mit dem Programmieren beginnen, werden wir uns im theoretischen Teil dieser Android Lektion intensiver mit der Contextual Action Bar beschäftigen und Dialoge in Android kennenlernen.

Lektion 8: Durchführen eines SQLite Datenbank Upgrades in Android

In der achten und letzten Lektion unseres Android SQLite Tutorials werden wir ein SQLite Datenbank Upgrade durchführen.

Außerdem werden wir unsere SQLite App um eine neu nützliche Funktion erweitern. Und zwar sollen die Nutzer unserer Einkaufslisten-App die Listeneinträge abhaken können. Wir realisieren diese Funktion, indem wir den Text des jeweiligen Eintrags durchstreichen und ausgrauen.

Um dies zu realisieren, werden wir die folgenden Arbeitsschritte durchführen:

  1. Erweitern der ShoppingMemo-Klasse um ein zusätzliches Attribut.
  2. Vorbereiten der ShoppingMemoDbHelper-Klasse für den SQLite Datenbank Upgrade.
  3. Anpassen der ShoppingMemoDataSource-Klasse an die neue Datenstruktur der SQLite Datenbank und des Datenmodells.
  4. Erweitern der MainActivity-Klasse um einen OnItemClickListener, mit dessen Hilfe wir Einträge des ListViews abhaken (durchstreichen) können.

Anschließend werden wir unsere SQLite App ausführen und testen. Wir werden ein Upgrade der SQLite Datenbank durchführen und dabei auch wieder die Log-Meldungen unserer Anwendung analysieren.

android sqlite column

Einträge aus der SQLite Datenbank im ListView durchstreichen (abhaken)

Im theoretischen Teil der achten Lektion des SQLite Tutorials werden wir uns mit dem Durchführen eines SQLite Datenbank Upgrades beschäftigen.

Mit dem Ende der achten Lektion sind wir auch am Ende dieses Android Tutorials angelangt. Wir hoffen, dass es für euch nützlich war und ihr nun bereit seid SQLite Datenbanken in euren eigenen Android Apps gekonnt einzusetzen. Viel Erfolg und Spaß bei der App-Entwicklung.


Comments 3

  1. Pingback: Android SQLite Tutorial - Teil 1: SQLite Projekt anlegen

  2. Pingback: Testbericht: Video Training - Apps entwickeln mit Android Studio

  3. Pingback: Buchempfehlung: Android - Der schnelle und einfache Einstieg

Hinterlasse eine Antwort

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