© 2012 TravelTainment Datenbankzugriffe in Java-Applikationen mit Hilfe des Spring Frameworks Simon Wirtz Seminarvortrag WS 13/14 Oktober 2013.

Slides:



Advertisements
Ähnliche Präsentationen
interaktiver Web Service Workflows
Advertisements

Object Relational Mapping
Objektrelationales Mapping mit JPA
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
Cloud42 Dominik Muhler Seminar StuPro cims cims.
Datenbanken Einführung.
JPQL Java Persistence Query Language
2. DB-API: Programmierschnittstellen zu Datenbanken
Ruby on Rails im Überblick
Objektrelationales Mapping mit JPA
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Testing Jonas Bandi Simon Martinelli.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Modellierung der Zugriffslogik auf Datenbanktabellen Software Component Technology for Distributed Applications Andreas Fink.
Access 2000 Datenbanken.
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
JDBC EDV JDBC.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Uwe Habermann WPF Avalon Formulare aus VFP verwenden Venelina Jordanova
Einführung und Überblick
JDBC: JAVA Database Connectivity
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
YouTube5 .0 Projektpräsentation
ODBC (Open Database Connectivity)
Herzlich Willkommen… welcome… soyez la bienvenue….
News Modul Überblick und Erweiterung
Wir bauen uns eine Webapplikation!
Letzter Tag Spaeter Zeitpunkt letzte Lied hoert man weiter.
Vortrag D. Braun, Praktikum. Übersicht Pleopatra API Pleopatra Tools Twitter Demonstration Ausblick.
ArcGIS als WPS Server Aktueller Stand der Umsetzung
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Erstellen einer Webseitenstatistik mithilfe eines OLAP-Servers
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Java für Fortgeschrittene
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
Sesame Florian Mayrhuber
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Servlets Servlets und relevantes API Servlets & SQL via JDBC Implementierungs - Spezifika Architektur Überblick Vertikaler Prototyp / Spezifikation.
Spring Framework.
Esprit Database Suite Eine leistungsfähige Java-Persistzenzschicht zur einfachen Programmierung von Datenbankapplikation.
Referent: Stephan Metzler
XML und Datenbanken © 2006 Markus Röder
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Torque robert.resch-wolfgang.schneider. uebersicht Was ist Torque Komponenten von Torque Generator Erzeugte Klassen Methoden Torque in Turbine Demobeispiel.
Datenanbindung in Webapplikationen
Hibernate (OR-Mapping)
Datenbankanbindung mit
Mind the Gap Die semantische Lücke zwischen Objekten und Relationen.
Untersuchungen zur Erstellung eines
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
XML-Verarbeitung mit dem.NET-Framework. Inhalt 1.XML-Verarbeitung mittels XmlReader- und XmlWriter-basierter Klassen 2.XML-Verarbeitung mittels XmlDocument.
Datenbanken im Web 1.
J2EE-Motivation(I) Anforderungen an heutige Software u.a.:
Javabasierte Webtechnologien Objektrelationales Mapper und JDO.
EJB Architektur für große Web - Applikationen Gerald Weber
O/R - Mapper Hibernate ETIS SS04. Hibernate 2 Gliederung Motivation Architektur Persistente Klassen Mapping-Files Konfiguration und Datenbanken Ablauf.
Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine.
Enterprise-IT-Praktikum Hibernate-Einführung Institut für Telematik Universität zu Lübeck Wintersmester 2012/13 Dennis Boldt David Gregorczyk.
© 2003, Rudolf Jansen Einsatz der XML-Features der Oracle 9i DB zur Systemintegration Rudolf Jansen Freiberuflicher Entwickler und Autor
, Claudia Böhm robotron*SAB Anwendungsentwicklung mit dem Java und XML basierten Framework robotron*eXForms Simple Application Builder.
Entwurf, Implementierung und Test eines Java – Web Services als Kommunikationsschnittstelle für Webapplikationen mit Funktionen.
Workflowsysteme und Datenbanksysteme Gliederung Motivation Basis- funktionalitäten Klassifikations- merkmale Referenz-Modell MQ Workflow Zusammenfassung.
© 2012 TravelTainment Einführung in Enterprise JavaBeans Seminarvortrag von Ralf Penners Folie 1 von 34.
© 2012 TravelTainment Einführung in Spring Web MVC Seminarvortrag Sebastian Hesse
Verteilte Anwendungen: J2EE
 Präsentation transkript:

© 2012 TravelTainment Datenbankzugriffe in Java-Applikationen mit Hilfe des Spring Frameworks Simon Wirtz Seminarvortrag WS 13/14 Oktober 2013

© 2012 TravelTainment Inhaltsübersicht  1. Motivation und Einleitung  2. Java Database Connectivity  2.1 Anwendung  2.2 Problematik der Technologie  3. Objektrelationale Abbildungen  3.1 Hibernate  Anwendung  Vergleich zu JDBC

© 2012 TravelTainment Inhaltsübersicht  4. Spring  4.1 Kerntechnologien  4.2 Spring Data Access/Integration  Spring JDBC  Das JdbcTemplate  Vorteile der Technologie  Spring ORM  Nutzung von Hibernate mit Spring  Vorteile von Spring ORM für Hibernate  5. Fazit

© 2012 TravelTainment 1. Motivation und Einleitung  Viele Computeranwendungen arbeiten mit Datenbanken  Datenbankzugriff in Applikationen über verschiedene Tools und Technologien  In Java: JDBC primäre DB-Schnittstelle ORM Fortgeschritten und objektorientiert Spring Weitere Erleichterungen

© 2012 TravelTainment Kapitel 2 JDBC

© 2012 TravelTainment 2. Java Database Connectivity  Datenbankschnittstelle der Java-Plattform  Am 19. Februar 1997 erstmals veröffentlicht  Neueste Version: JDBC 4.1  Hauptfunktionalität: Verbindung zu DB aufbauen SQL- Abfragen senden Mit den Ergebnissen arbeiten

© 2012 TravelTainment 2.1 Anwendung Verbindungsaufbau Abfrage senden Verarbeiten

© 2012 TravelTainment 2.2 Problematik der Technologie JDBC arbeitet SQL- basiert! Aufwändiges Ressourcen- management Sich wiederholender Prozess Exceptionhandling bei allen API- Aufrufen Geschäftslogik < Verwaltung Manuelles Überführen von Datenbankeintrag in Objekt und umgekehrt

© 2012 TravelTainment Kapitel 3 ORM

© 2012 TravelTainment 3. Objektrelationale Abbildung  Erlaubt das Ablegen von Objekten in einer Datenbank  Schicht zwischen Anwendung und Datenbank  Behandelt Unverträglichkeit zwischen Objekten und relationalen Datenbanken  Beispiel Java: Java Persistence API IDNAMEDESCRIPTIONAGE 1SimonTest21 ORM

© 2012 TravelTainment 3.1 Hibernate  Implementierung der Java Persistence API  Neuste Version im März 2013 veröffentlicht:  Mapping der POJOs über XML oder Annotationen  Parameterloser Konstruktor ist Pflicht Importieren des Packages Annotieren des POJOs zur Spezifizierung der Spaltendefinition

© 2012 TravelTainment Konfigurationsdatei  hibernate.cfg.xml  Beinhaltet Daten für SessionFactory Datenbank- spezifikation Weitere Spezifikationen wie „Dialect“ Annotierte Klassen

© 2012 TravelTainment Anwendung  Session wird aus SessionFactory bezogen  Ausführen einer Query über Session  Methode ist in Transaktion gehüllt Erzeugen der SessionFactory

© 2012 TravelTainment Vergleich zu JDBC Beispiel: Abfragen eines Objekts aus der Datenbank

© 2012 TravelTainment Vergleich zu JDBC Weniger Verwaltungsaufwand Überführung der DB- Einträge in Objekte nicht nötig (Sinn der Technologie) Geschäftslogik steht mehr im Vordergrund OO-Konzept wird verfolgt

© 2012 TravelTainment Kapitel 4 Spring

© 2012 TravelTainment 4 Spring  Modular aufgebautes Framework (ca. 20 Module)  Aktuelle Version: 3.2 vom  Ziel:  Entwicklung mit Java/JEE vereinfachen  gute Programmierpraktiken fördern

© 2012 TravelTainment 4.1 Kerntechnologien  Dependeny Injection bzw. Inversion of Control  IoC-Container beinhaltet alle wichtigen Applikations- Komponenten (Beans) inklusive Abhängigkeiten  Beans können aus ApplicationContext bezogen werden

© 2012 TravelTainment Bean-Definition  1. XML  2. Annotationen

© 2012 TravelTainment 4.2 Spring Data Access / Integration Wie gestaltet Spring das Arbeiten mit JDBC und Hibernate angenehmer und einfacher?

© 2012 TravelTainment Spring JDBC

© 2012 TravelTainment Das JdbcTemplate  Einschränkungen in JDBC  Springs Lösungsansatz: JdbcTemplate  Threadsafe, kann in allen DAOs genutzt werden  Benötigt DataSource, das Verbindungsparameter definiert:

© 2012 TravelTainment Nutzung des JdbcTemplates  Injizieren der DataSource -Bean in DAO:  JdbcTemplate stellt ca. 100 Methoden bereit  execute(sql: String)  update() -Methoden

© 2012 TravelTainment Vereinfachtes Mapping  RowMapper- Interface Implementierung Nutzung

© 2012 TravelTainment Vorteile der Technologie Kapselung JDBC-Code in Template Kein Behandeln von SQL- Exceptions Kein Ressourcen- management Kein Iterieren durch ResultSet Anwendungslogik steht im Vordergrund

© 2012 TravelTainment Spring ORM

© 2012 TravelTainment Spring ORM  Folgendes Kapitel konzentriert sich auf Hibernate  Spring bietet First-Level Support für Hibernate  Früher: Template-Klassen wie bei JDBC gesehen Ziele Schichten- trennung Lose Kopplung Einfaches Testen und Warten

© 2012 TravelTainment Nutzung von Hibernate mit Spring  Hibernate ohne Spring:  SessionFactory erzeugen mithilfe der Konfigurationsdatei  Hibernate mit Spring:  SessionFactory als Bean definieren  DataSource injizieren  SessionFactory in alle relevanten Klassen injizieren

© 2012 TravelTainment SessionFactory in DAO nutzen Injizieren der SessionFactory-Bean Annotieren konsistente Runtime- Exceptions (DataAccessException). Wie gewohnt, Hibernate in DAOs benutzen

© 2012 TravelTainment Nutzung von Hibernate mit Spring  Weitere Erleichterung durch Spring-Transaction- Management: Ohne Spring Manuelles Starten und Beenden von Transaktionen Mit Spring handhabt Transaktionen eigenständig: Öffnen, Schließen, Fehlerbehandlung

© 2012 TravelTainment Vorteile  Einfache Möglichkeit, SessionFactory s bzw. DataSource s auszutauschen  Exceptions werden in einheitliche Hierarchie überführt  Transaktionsmanagement wird vereinfacht  Allgemein: Dependency Injection Geschäftslogik wird von Datenzugriffs- und Transaktionsstrategien getrennt Losere Kopplung zwischen Applikationskomponenten

© 2012 TravelTainment Kapitel 5 Fazit

© 2012 TravelTainment 5. Fazit  Spring JDBC:  JdbcTemplate kapselt „boilerplate code“  Kein manuelles Verbindungs-, Transaktions- oder Ressourcenmanagement notwendig  Spring vereinfacht Mapping zwischen Objekt und relationalem Datensatz ( RowMapper )  Weiterhin SQL-basiert

© 2012 TravelTainment 5. Fazit  Spring ORM/Hibernate:  Kein Template, sondern Arbeiten mit Standard-API  Kein manuelles Aufsuchen der Konfigurationsdatei oder Erstellen der SessionFactory  Definition der SessionFactory in Spring-Context führt zu loserer Kopplung  Transaktions- und Exceptionhandling wird verbessert  Spring ist eine Bereicherung für Hibernate-Anwendung!

© 2012 TravelTainment Quellen  M. Konda, Just Spring Data Access, 2012  R. Johnson, J. Hoeller u.a., Spring Framework Reference Documentation 3.2.3, 2013  S. Slavic, „community.jboss.org“, 2010  M. Inden, Der Weg zum Java-Profi, 2011  M. Fowler, „martinfowler.com“, 2004  Wikipedia, August 2013: „Java Database Connectivity“, „Objektrelationale Abbildung“, „Java Persistence API“, „Spring“, „Hibernate“  Für detaillierte Angaben vgl. Literaturverzeichnis im Skript.

© 2012 TravelTainment Fragen

© 2012 TravelTainment Vielen Dank für die Aufmerksamkeit