Datenmanagement in Android-Apps. 16. Mai 2013



Ähnliche Dokumente
DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube Konstanz

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Allgemeines zu Datenbanken

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

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

Programmieren I. Kapitel 15. Ein und Ausgabe

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Objektorientierte Programmierung

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

7. Übung - Datenbanken

SQL - Übungen Bearbeitung der Datenbank Personal (1)

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

ID VisitControl. Dokumentation Administration Equitania Software GmbH cmc Gruppe Seite 1

Anleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken

Ein Ausflug zu ACCESS

Arbeitsgruppen innerhalb der Website FINSOZ e.v.

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Oracle: Abstrakte Datentypen:

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

CartCalc FAQ (frequently asked questions) häufige Fragen zu CartCalc

teamsync Kurzanleitung

White Paper. Konfiguration und Verwendung des Auditlogs Winter Release

SQL-Injection. Seite 1 / 16

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

ACCESS das Datenbankprogramm. (Einführung) DI (FH) Levent Öztürk

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 6: Datenbankabfragen mit SQL und PHP. Stand: Übung WS 2014/2015

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Effiziente Administration Ihrer Netzwerkumgebung

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube Konstanz

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Kurzanleitung RACE APP

Synchronisation von redundanten Datenbeständen

1. Zusammenfassung der letzten Vorlesung

Anbindung einer Gateprotect GPO 150

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Import und Export von Übergängern

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

SEPA-Leitfaden für PC-VAB Version Inhalt

IPETRONIK TESTdrive SDK V02.00

Oracle SQL Tutorium - Wiederholung DB I -

Benutzung der LS-Miniscanner

Architektur des agimatec-validation Frameworks

Prozedurale Datenbank- Anwendungsprogrammierung

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

f Link Datenbank installieren und einrichten

Anleitung zu htp Mail Business htp WebMail Teamfunktionen

Access [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

SAS Metadatenmanagement Reporting und Analyse

Im Original veränderbare Word-Dateien

Access 2000 und MS SQL Server im Teamwork

Lehrer: Einschreibemethoden

Step by Step Softwareverteilung unter Novell. von Christian Bartl

XINDICE. The Apache XML Project Name: J acqueline Langhorst blackyuriko@hotmail.de

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

desk.modul : ABX-Lokalisierung

Javakurs zu Informatik I. Henning Heitkötter

Anleitung. Lesezugriff auf die App CHARLY Termine unter Android Stand:

SQL-Toolboxbeispielmandant Dokumentation

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Datenbanken für Online Untersuchungen

Laborübung - Task Manager (Verwalten von Prozessen) in Windows Vista

Umleiten von Eigenen Dateien per GPO

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

Kundenspezifische Preise im Shop WyRu Online-Shop

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

SCHNELLEINSTIEG FÜR HOSTED EXCHANGE BASIC / PREMIUM

Beispiel des Zusammenführens der APV- Tabellen Stammdaten und Verlaufsdaten mithilfe von Access

novapro Open Audittrail Report

'RZQORDGXQG,QVWDOODWLRQYRQ-HW5HSRUWVIU '\QDPLFV1$95RGHUIUKHU

Datenbanken auf Sybase SQL-Anywhere

C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET. Leibniz Universität IT Services Anja Aue

Erstellen von x-y-diagrammen in OpenOffice.calc

Info-Veranstaltung zur Erstellung von Zertifikaten

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

5. Übung: PHP-Grundlagen

Enigmail Konfiguration

affilinet_ Flash-Spezifikationen

Projektmanagement in Outlook integriert

ecaros2 - Accountmanager

Einführung in die Java- Programmierung

Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)

GSD-Radionik iradionics Android-App

Erstellen und Bearbeiten von Inhalten (Assets)

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

Benutzerhandbuch. ZFG Viewer App. (Version 1.x.x)

IV. Datenbankmanagement

Transkript:

Datenmanagement in Android-Apps 16. Mai 2013

Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer internen OrmLite-Datenbank DB-Schema über Annotationen in Java-Klassen Bereitstellung von Datenzugriffsklassen Einfache Unterstützung für Anfragen in einer Datenbank auf einem externen Server Zugriff innerhalb eines separaten Threads MySQL-Datenbank Zugriff über die Schnittstelle JDBC Taentzer Software-Praktikum 2013 69

Schichtenarchitektur Oberfläche: Durch Activities realisiert objektorientierter Zugriff: Datenklassen Separate Klassen für den Datenzugriff Datenhaltung: In Dateien oder Datenbank Eigenschaften: Klare Trennung zwischen Datenhaltung und -nutzung objektorient. Sicht auf die Daten meist keine separierte Anwendungslogik Oberfläche objektorientierter Zugriff Datenhaltung Taentzer Software-Praktikum 2013 70

Zusammenhang: Objektorientiertes Modell relationale Datenbank Klasse mit Attributen Objekt zu einer Klasse 1-1 Assoziation zwischen Klassen A und B 1-n Assoziation von Klasse A nach B n-m Assoziation zwischen Klassen A und B Tabelle mit Spalten, eine spezielle Id-Spalte Zeile (Datensatz) einer Tabelle weitere Spalte in Tabelle A mit B_Id (oder umgekehrt) weitere Spalte in Tabelle B mit A_id weitere Tabelle mit zwei Spalten A_Id und B_Id Taentzer Software-Praktikum 2013 71

OrmLite-Datenbanken Object Relational Mapping Lite bietet eine leichtgewichtige Lösung für das Persistieren von Java-Objekten in SQL Datenbanken. Erstellen einer neuen OrmLite-Datenbank erstelle eine neue Unterklasse von OrmLiteSqliteOpenHelper überschreibe oncreate() und erzeuge die Datenbank überschreibe onupgrade() für Schemamigration Erstellen des Datenbankschemas Das DB-Schema wird aufgrund von Annotationen an Datenklassen automatisch erstellt. Taentzer Software-Praktikum 2013 72

Annotation von Klassen um Persistenzinformationen Persistenz einer Klasse in einer Tabelle: @DatabaseTable Setzen eines Tabellennamens: @DatabaseTable(tableName = clicks ) Persistenz eines Feldes in einer Spalte: @DatabaseField Persistenz als Schlüssel: @DatabaseField(id = true) Weitere Informationen: columnname, defaultvalue, canbenull, generatedid, foreign, unique ClickCount.java: Taentzer Software-Praktikum 2013 73

Erzeugen einer neuen Datenbank geschieht in einer Klasse, die von OrmLiteSqliteOpenHelper erbt. DatabaseHelper.java: DB-Name und Version setzen Datenzugriffsobjekte definieren Taentzer Software-Praktikum 2013 74

Erzeugen einer neuen Datenbank Erzeugen mit oncreate(), Ändern mit onupgrade() DatabaseHelper.java: Einfachste Änderung: Alte Tabellen löschen und neu anlegen Taentzer Software-Praktikum 2013 75

Datenzugriffsobjekte Engl.: Data Access Object (DAO) Für einfache Zugriffe auf Datenobjekte zuständig: CRUD: Create, Read, Update, Delete abstrahiert von der konkreten Datenhaltung Für jeden Typ von Datenobjekt gibt es ein DAO. ein Singleton-Objekt Generischer Typ: Dao<T,ID> T Typ des Datenobjekts ID Typ der Identifier (z.b. Integer) DatabaseHelper.java: Taentzer Software-Praktikum 2013 76

Einlesen der Persistenzinformation geschieht in einer Klasse, die von OrmLiteConfigUtil erbt. DatabaseConfigUtil.java: Datei wird automatisch aus der Persistenzinformation erzeugt. Taentzer Software-Praktikum 2013 77

Benutzung der DAOs CreateCounter.java: DAO holen Objekt holen Geändertes Objekt persistieren Taentzer Software-Praktikum 2013 78

Benutzung der DAOs DAO-Nutzung innerhalb von trycatch-blöcken CreateCounter.java: Persistierung eines neuen Datenobjekts Taentzer Software-Praktikum 2013 79

Benutzung von DAOs CreateCounter.java: Abrufen aller Datenobjekte eines Typs mit queryforall Taentzer Software-Praktikum 2013 80

Komplexere Anfrage mit DAOs CreateCounter.java: Vorteil: Typsicherheit Maximale Anzahl von Zeilen Entsprechende SQL-Anfrage: SELECT * FROM ClickCount ORDER BY DATE_FIELD_NAME Taentzer Software-Praktikum 2013 81

Weitere hilfreiche Klassen zur Verwaltung von Daten ConnectionSource Datenquelle für eine Datenbankverbindung DaoManager zum Erzeugen und Verwalten von DAO-Objekten TableUtil zum Erzeugen, Löschen und Verwalten von Tabellen Taentzer Software-Praktikum 2013 82

DaoManager Zur Erzeugung eines DAO-Objekts ohne spezielle DAO- Klasse. Beispiel: Erzeugen einer Datenquelle für eine bestimmte Datenbank ConnectionSource myconnection = null; myconnection = new JdbcConnectionSource(myUrl,myUser,myPass); Erzeugen eines DAO für eine bestimmte Datenquelle und eine Tabellenkonfiguration, die durch eine Klasse angegeben ist mydao = DaoManager.createDao(myConnection,My.class); Taentzer Software-Praktikum 2013 83

TableUtil Zum Erzeugen, Löschen und Managen von Tabellen Beispiele: eine neue Tabelle erzeugen, zur Tabellenkonfiguration die entsprechende Klasse angeben TableUtils.createTable(myConnectionSource,My.class) eine Tabelle löschen, zur Tabellenkonfiguration die entsprechende Klasse angeben TableUtils.dropTable(myConnectionSource,My.class,true) Taentzer Software-Praktikum 2013 84

Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer internen OrmLite-Datenbank in einer Datenbank auf einem externen Server Zugriff innerhalb eines separaten Threads MySQL-Datenbank Zugriff über die Schnittstelle JDBC Taentzer Software-Praktikum 2013 85

AsyncTask Möglicherweise länger dauernde Berechnungen sollten nicht im Haupt-Thread durchgeführt werden. AsyncTask erlaubt die Benutzung von Hintergrundoperationen und gibt Ergebnisse auf dem Haupt- Thread aus. CounterScreen.java: variable Anzahl von Parametern Taentzer Software-Praktikum 2013 86

Generische Typen: AsyncTask Params der Typ der Parameter für die Berechnung Progress der Typ der Fortschrittsobjekte, die während der Berechnung dargestellt werden sollen Result der Typ des Resultars der Berechnung Überschreibbare Methoden: onpreexecute Vorbereitung der Berechnung auf dem Haupt- Thread doinbackground Durchführung im Hintergrund onprogressupdate Fortschrittsanzeige auf dem Haupt-Thread onpostexecute Aufruf nach der Berechnung auf dem Haupt- Thread Taentzer Software-Praktikum 2013 87

Design des Datenbankzugriffs Problem: Einzelne Kunden sollen ihre Daten, aber nicht die Daten anderer Kunden, lesen dürfen Lösungsmöglichkeiten: Jeder Kunde ist ein Datenbanknutzer: Der Zugriff ist rein lesend. Zu jeder Tabelle mit kritischem Inhalt wird mit SQL eine Sicht erzeugt, die nur die Daten des anfragenden Kunden enthält. (CREATE VIEW) In der DB erhält jeder Kunde die Berechtigung auf seine Sichten. Es gibt zusätzliche Services: Diese kapseln die Datenbank und geben der App nur kundenspezifische Daten zurück. Taentzer Software-Praktikum 2013 88

Zusammenfassung App mit Schichtenarchitektur Datenhaltung ist klar vom objektorientierten Datenzugriff getrennt. Intern: Datenhaltung in einer App OrmLite-Datenbank zur Speicherung von Daten in einer App OrmLite unterstützt eine einfache Benutzung von relationalen Datenbanken. DB-Schema wird durch Annotationen an Datenklassen automatisch erstellt. Extern: Datenabfrage über das Internet Anbindung einer externen Datenbank über JDBC Taentzer Software-Praktikum 2013 89

Literatur ORMLite: ormlite.com ormlite.com/javadoc/ormlite-core/doc-files/ormlite.html SQL und JDBC: siehe LV Datenbanksysteme 1 Taentzer Software-Praktikum 2013 90