SQLite DB Browser

Android-Apps programmieren

DB Browser for SQLite statt SQLite Manager

Im Buch "Android-Apps programmieren" wird der Einsatz von der Firefox-Erweiterung "SQLite Manager" beschrieben. Leider wird die Erweiterung nicht weiterentwickelt. Damit kam es, wie es kommen musste. Seit Firefox Version 57 (Firefox Quantum), wird die alte Schnittstelle für Erweiterungen nicht mehr unterstützt. Damit läuft auch die Erweiterung "SQLite Manager" nicht mehr unter Firefox.

Wie bereits im Buch erwähnt, gibt es dazu eine Open Source Alternative "DB Browser for SQLite", das auf allen gängigen Betriebssystemen läuft und die notwendigen Funktionen bereithält. Dieser Artikel beschreibt den Einsatz von diesem Tool, wie es im Buch benötigt wird, um alle notwendigen Aufgaben zu lösen.

Download und Installation

Dieser Abschnitt ersetzt die Seiten 116 - 118 im Buch.

Sie können das Programm von der offiziellen Homepage sqlitebrowser.org herunterladen. Das Programm steht für alle Plattformen (Windows x32 und x64, macOS und Linux) zur Verfügung. Die Installation entspricht dem jeweiligen Betriebssystem (unter einigen Linux Distributionen kann das Programm über den Paketmanger direkt installiert werden).

Nach der Installation steht Ihnen das Programm für die Erstellung und Verwaltung von SQLite Datenbanken. Eine Konfiguration des Programms ist nicht notwendig.

Anlegen einer neuen Datenbank

Dieser Abschnitt ergänzt die Seiten 118 - 120 im Buch.

Nach dem Öffnen des Programms klicken Sie auf den Button Neue Datenbank in der Toolbar oben links. In den darauf aufgehenden Dialog können Sie den Dateinamen uns Speicherort für die neue Datenbank angeben.

Daraufhin öffnet sich ein neues Dialog für die Anlage der ersten Tabelle. Neben dem Tabellennamen können hier nun die einzelnen Spalten (incl. Datentyp) definiert werden. Das erreichen Sie durch den Klick auf den Button, Feld hinzufügen.

  • In der Spalte Name wird die Bezeichnung der Spalte eingetragen (also _id für die primäre Spalte unter Android).
  • In der Spalte Typ kann einer der vier SQLite Datentypen ausgewählt werden (INTEGER, REAL, TEXT, BLOB).
  • In der Spalte Nicht Null wird festgelegt, ob der Inhalt der Spalte jemals leer (Nichts) sein darf.
  • Die Spalte PK (Primary Key) legt eine (oder mehrere) Spalten fest, die als primärer Schlüssel genutzt werden sollen.
  • Die Spalte AI (Autoincrement) gibt an, ob bei der Neuanlage eines Datensatzes der Wert dieser Spalte automatisch hochgezählt werden soll.
  • Die Spalte U (Unique) gibt an, ob ein Wert der Spalte nur ein Mal vorkommen darf.
  • In der Spalte können Sie den Standardwert vorgeben, falls beim Hinzufügen des Datensatzes der Wert der Spalte nicht mit übergeben wird.
  • Weitere Spalten sind für uns vorerst uninteressant.

Im unteren Bereich sehen Sie live den SQL-Code, der notwendig ist, um diese Tabelle erstellen zu können (diesen benötigen wird in Android Studio, um die Datenbanken erstellen zu können).

Skripte kopieren

Dieser Abschnitt ist für die Seite 124 im Buch notwendig.

Wenn Sie den SQL nicht kopiert haben, kein Problem. Der Code lässt sich jederzeit exportieren. Klicken Sie dazu im Reiter Datenstruktur auf die erstellte Tabelle mit der rechten Maustaste. Im Kontextmenü können Sie nun den Punkt Create-Statement kopieren auswählen. Der Code wird dadurch in die Zwischenablage übernommen und kann in Android Studio benutzt werden.

Vergessen Sie am Ende nicht auf den Button Änderungen schreiben in der Toolbar zu klicken, da sonst die gerade angelegte Tabelle nicht gespeichert wird.

Anzeigen der Tabelleninhalte

Dieser Abschnitt ersetzt die Seite 131 im Buch.

Wenn Sie die ersten Daten in der Datenbank haben, wollen Sie diese auch kontrollieren. Das ist mit dem Programm sehr einfach möglich. Öffnen Sie die Datenbank (die Sie vom Emulator auf Ihren Rechner übertragen haben) mit dem Button Datenbank öffnen in der Toolbar. Navigieren Sie nun vom Reiter Datenbankstruktur zu dem Reiter Daten durchsuchen. Unter Tabelle können Sie nun die gewünschte Tabelle auswählen und die Daten in tabellarischen Auflistung ansehen.

Tabellenanpassungen (für Migrationen)

Dieser Abschnitt ergänzt die Seiten 241 - 246 im Buch.

Um neue Spalten im Programm hinzuzufügen, markieren Sie die Tabelle und klicken Sie auf den Button Tabelle verändern (oder über Kontextmenüeintrag Tabelle verändern). Hier können Sie nun die neue Spalten mit den notwendigen Eigenschaften anlegen. Leider zeigt das Programm beim Übernehmen der Änderungen nicht einen Änderungsskript, wie es die Firefox-Erweiterung SQLite Manager gemacht hat.

Leider erzeugt das Programm kein Änderungsskript bei der Übernahme der Änderungen, wie es die Firefox-Erweiterung SQLite Manager gemacht hat. Wenn wir uns den SQL Log (Toolfenster/Reiter unten rechts) anschauen, sehen wird, dass das Programm jede von unseren Aktionen sofort als entsprechendes SQL umsetzt. Statt ein einziges Skript, erzeugt das Programm insgesamt ein Skript mit über 40 Zeilen. Das ist für Migration inakzeptabel, insbesondere, da die meisten Änderungen in folgenden Ablauf abgebildet werden:

  1. Ausschalten der Foreign Key Überwachung.
  2. Erstellen einer temporäreren Tabelle mit neuen Anforderungen.
  3. Kopieren der Daten aus der alten Tabelle in die neue.
  4. Löschen der alten Tabelle.
  5. Umbenennen der temporären Tabelle.
  6. Einschalten der Foreign Key Überwachung.

Für die Migration benötigen wir als Ausgangspunkt meistens nur die erste Zeile aus dem Log (ALTER TABLE `time_data` ADD COLUMN `Field4` INTEGER). Diesen Ausgangsskript erweitern wir dann um die zusätzlichen Eigenschaften der Spalte (wie Namen, Standardwert usw. ALTER TABLE `time_data` ADD COLUMN `pause` INTEGER NOT NULL DEFAULT 0).

Fazit

Mit diesem Wissen können Sie nun die im Buch gestellten Aufgaben statt mit der Firefox-Erweiterung SQLite Manager mit dem Programm DB Browser for SQLite erledigen.

Auch die aktuelle Benutzerversion (Seite 244 Bild 4.20 im Buch) der Datenbank kann mit diesem Programm überprüft werden (siehe Screenshot). Leider ist die deutsche Übersetzung im Programm irreführend, da die Version als Schemaversion übersetzt ist (im Englischen ist es korrekt als user version gekennzeichnet).