Programmieren für mobile Endgeräte€¦ · • 2. Parameter: zu speichernde Dateninhalte als Map...

13
Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014

Transcript of Programmieren für mobile Endgeräte€¦ · • 2. Parameter: zu speichernde Dateninhalte als Map...

Page 1: Programmieren für mobile Endgeräte€¦ · • 2. Parameter: zu speichernde Dateninhalte als Map • 3. Parameter: Einschränkung in Form eines SQL-Fragments, welche Datensätze

Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014

Page 2: Programmieren für mobile Endgeräte€¦ · • 2. Parameter: zu speichernde Dateninhalte als Map • 3. Parameter: Einschränkung in Form eines SQL-Fragments, welche Datensätze

Dozenten: Patrick Förster, Michael Hasseler

SQLite als Datenbank-Managementsystem (DBMS)

• wenige 100 KB schlanke Programmbibliothek

• Aktuelle Version: 3.8.1

• Für die Erstellung und Verwaltung von relationalen Datenbanken

• Standard SQL-92 wird in großen Teilen unterstützt

• Eine Datenbank von SQLite besteht aus nur einer einzigen Datei.

• Einsatzgebiete sind u. a. Android-Mobiltelephone und Mozilla Firefox

• Android mit derzeit mit SQLite Version 3.4 ausgeliefert (Quelle: http://developer.android.com/reference/android/database/sqlite/package-summary.html)

Programmieren für mobile Endgeräte 2

Quelle: http://de.wikipedia.org/wiki/SQLite

Page 3: Programmieren für mobile Endgeräte€¦ · • 2. Parameter: zu speichernde Dateninhalte als Map • 3. Parameter: Einschränkung in Form eines SQL-Fragments, welche Datensätze

Dozenten: Patrick Förster, Michael Hasseler

Relationale Datenbank

• Daten werden in Tabellen gespeichert

• Ergebnis einer Datenbankabfrage auch eine Tabelle.

• Primärschüssel einer Tabelle beschreibt einen Datensatz eindeutig

• Tabellen können mit Fremdschlüsseln aufeinander verweisen und

Beziehungen (Relationen) haben.

• Fremdschlüssel einer Tabelle ist i. d. R. Primärschlüssel der gleichen oder

einer anderen Tabelle

Programmieren für mobile Endgeräte 3

Lauf.-Nr. Name Artikel Anzahl Preis

1 Meyer PC 1 499,95

2 Müller DVD 20 20,00

3 Schulze Handy 1 120,00

Page 4: Programmieren für mobile Endgeräte€¦ · • 2. Parameter: zu speichernde Dateninhalte als Map • 3. Parameter: Einschränkung in Form eines SQL-Fragments, welche Datensätze

Dozenten: Patrick Förster, Michael Hasseler

Datenbank mit Android erstellen

1. Datenbank-Schema festlegen

2. Eigene Klasse z. B. AufgabenDBHelper von der Klasse SQLiteDatabaseHelper

ableiten

3. Datenbankname und Version festlegen

4. Methoden onCreate(..) und onUpgrade(..) überschreiben

• onCreate(..) erstellt eine neue Datenbank

• onUpgrade(..) wird bei einem Versionswechsel der Datenbank aufgerufen

5. Die geerbten Methoden getWriteableDatabase() bzw. getReadableDatabase() aus der

Klasse SQLiteDatabaseHelper liefern eine Referenz auf das Datenbank-Objekt

Programmieren für mobile Endgeräte 4

Quelle:: http://developer.android.com/training/basics/data-storage/databases.html

Page 5: Programmieren für mobile Endgeräte€¦ · • 2. Parameter: zu speichernde Dateninhalte als Map • 3. Parameter: Einschränkung in Form eines SQL-Fragments, welche Datensätze

Dozenten: Patrick Förster, Michael Hasseler

1. Datenbank-Schema festlegen

• Datenbankschema definiert Tabellenstruktur(en):

• Tabellenname

• Spaltennamen

• Kann in Form einer Contract Class erfolgen

• Globale Informationen in der Contract Class

• Jede Tabelle bildet eine inner class in der contract class

Programmieren für mobile Endgeräte 5

Quelle:: http://developer.android.com/training/basics/data-storage/databases.html#DefineContract

Page 6: Programmieren für mobile Endgeräte€¦ · • 2. Parameter: zu speichernde Dateninhalte als Map • 3. Parameter: Einschränkung in Form eines SQL-Fragments, welche Datensätze

Dozenten: Patrick Förster, Michael Hasseler

Beispiel zu einer Contract class

• Datenbankschema mit der Tabelle Aufgaben

Programmieren für mobile Endgeräte 6

Page 7: Programmieren für mobile Endgeräte€¦ · • 2. Parameter: zu speichernde Dateninhalte als Map • 3. Parameter: Einschränkung in Form eines SQL-Fragments, welche Datensätze

Dozenten: Patrick Förster, Michael Hasseler

Beispiel: AufgabenDBHelper.java 1/4

• Ableitung von der Oberklasse SQLiteOpenHelper und Konstanten anlegen:

Programmieren für mobile Endgeräte 7

Page 8: Programmieren für mobile Endgeräte€¦ · • 2. Parameter: zu speichernde Dateninhalte als Map • 3. Parameter: Einschränkung in Form eines SQL-Fragments, welche Datensätze

Dozenten: Patrick Förster, Michael Hasseler

Beispiel: AufgabenDBHelper.java 2/4

• Überschreiben der Methoden aus der Oberklasse

Programmieren für mobile Endgeräte 8

Page 9: Programmieren für mobile Endgeräte€¦ · • 2. Parameter: zu speichernde Dateninhalte als Map • 3. Parameter: Einschränkung in Form eines SQL-Fragments, welche Datensätze

Dozenten: Patrick Förster, Michael Hasseler

Beispiel: AufgabenDBHelper.java 3/4

• Referenz mit getWriteableDatabase holen und in einer Instanzvariable speichern

• Methode close() überschreiben und db-Objekt schliessen

Programmieren für mobile Endgeräte 9

Page 10: Programmieren für mobile Endgeräte€¦ · • 2. Parameter: zu speichernde Dateninhalte als Map • 3. Parameter: Einschränkung in Form eines SQL-Fragments, welche Datensätze

Dozenten: Patrick Förster, Michael Hasseler

Informationen in der Datenbank speichern

• Mit insert(..) können Daten in eine Tabelle hinzugefügt werden

• 1.Parameter: Tabellenname

• 2. Parameter: Vorgabewert für den Fall, dass der dritte Parameter null ist

• 3. Parameter: zu speichernde Dateninhalte als Map

• Beispiel:

Programmieren für mobile Endgeräte 10

Quelle:: http://developer.android.com/training/basics/data-storage/databases.html#ReadDbRow

Page 11: Programmieren für mobile Endgeräte€¦ · • 2. Parameter: zu speichernde Dateninhalte als Map • 3. Parameter: Einschränkung in Form eines SQL-Fragments, welche Datensätze

Dozenten: Patrick Förster, Michael Hasseler

Informationen in der Datenbank aktualisieren

• Mit update(..) können Daten in eine Tabelle hinzugefügt werden

• 1.Parameter: Tabellenname

• 2. Parameter: zu speichernde Dateninhalte als Map

• 3. Parameter: Einschränkung in Form eines SQL-Fragments, welche Datensätze

aktualisiert werden sollen z. B. _id=?

• 4. Parameter: Übergabe der Parameter als String-Array für das SQL-Fragment aus

dem 3.Parameter

Programmieren für mobile Endgeräte 11

Quelle:: http://developer.android.com/training/basics/data-storage/databases.html#UpdateDbRow

Page 12: Programmieren für mobile Endgeräte€¦ · • 2. Parameter: zu speichernde Dateninhalte als Map • 3. Parameter: Einschränkung in Form eines SQL-Fragments, welche Datensätze

Dozenten: Patrick Förster, Michael Hasseler

Zusammenfassung

• Was ist die Aufgabe einer Contract Class?

• Wie legt man mit Android unter der Verwendung von SQLite eine Datenbank an?

• Wie speichert man Daten in der SQLite-Datenbank von Android?

• Wie aktualisiert man Daten in der SQLite-Datenbank von Android?

Programmieren für mobile Endgeräte 12

Page 13: Programmieren für mobile Endgeräte€¦ · • 2. Parameter: zu speichernde Dateninhalte als Map • 3. Parameter: Einschränkung in Form eines SQL-Fragments, welche Datensätze

Dozenten: Patrick Förster, Michael Hasseler

Aufgaben

1. Erweitern Sie das Android-Projekt AufgabenApp, sodass in der Listview ein

Datensatz angeklickt werden kann und das Detailfenster AddAufgabeActivity

mit dessen Werten vorbelegt wird.

2. Für den Fall, dass der Datensatz, der in der View AddAufgabeActivity gezeigt

wird, bereits in der Datenbank gespeichert wurde, soll es zum einen die

Möglichkeit geben, den Datensatz zu aktualisieren und zum anderen soll der

Datensatz auch neu angelegt werden können.

Programmieren für mobile Endgeräte 13