java ee - fhws 2014 - 4 jpa

23
Java EE Full Stack for Business Applications Java Persistence API 2014-10- 24

Upload: matthias-reining

Post on 26-Jun-2015

105 views

Category:

Technology


1 download

DESCRIPTION

Java EE - FHWS 2014 - 4 JPA

TRANSCRIPT

Page 1: Java EE - FHWS 2014 - 4 JPA

Java EEFull Stack for Business

Applications

Java Persistence API

2014-10-24

Page 2: Java EE - FHWS 2014 - 4 JPA

Referent: MATTHIAS REINING

Technical Manager Insurance at RGI Deutschland GmbH

blog: http://blog.matthias-reining.com

twitter: https://twitter.com/MatthiasReining

about.me: http://about.me/matthiasreining

2014-10-24

Page 3: Java EE - FHWS 2014 - 4 JPA

JAVA PERSISTENCE API

2014-10-24

Page 4: Java EE - FHWS 2014 - 4 JPA

DAS PROGRAMM

Die Spec Idee, Historie

Der App Server Containerkonzept Paketierung (JAR, WAR, EAR) Marktüberblick

Das Projekt Entwicklung eines Beispielprojektes IDE Settings, Oberflächen (Servlets, JSF),

Business Logic (EJB), Persistence (JPA), Java EE Patterns (CDI), Web Services (JAX-RS)

Die Produktion Buildmanagement (maven, Jenkins) Deployment einer Java EE Anwendung in

der Cloud bei einem PaaS Anbieter

2014-10-24

Page 5: Java EE - FHWS 2014 - 4 JPA

BESTANDSAUFNAHME

Welche Persistierungsmöglichkeiten sind bekannt? JDBC?

JDO?

Hibernate?

eclipseLink?

JPA?

MongoDB?

2014-10-24

Page 6: Java EE - FHWS 2014 - 4 JPA

Zum Einstieg: JDBC

2014-10-24

Page 7: Java EE - FHWS 2014 - 4 JPA

JDBC

Zentrale Begriffe:

SQL / RDBMS Transaction (begin, commit, rollback) Connection / Connection Pool / Datasource JDBC Driver Statement / Prepared Statement In-Memory-Database

2014-10-24

Page 8: Java EE - FHWS 2014 - 4 JPA

JDBC Driver

JDBC Treibertyp I - JDBC-ODBC-Bridge JDBC Treibertyp II - Native API Driver JDBC Treibertyp III - Network Protocoll Driver JDBC Treibertyp IV - Pure Java Driver

2014-10-24

Page 9: Java EE - FHWS 2014 - 4 JPA

IN-MEMORY DATABASE

H2

http://www.h2database.com/ java –jar h2-1…jar

In-Memory Mode / Server Mode

2014-10-24

Page 10: Java EE - FHWS 2014 - 4 JPA

JDBCBeispiele

2014-10-24

Page 11: Java EE - FHWS 2014 - 4 JPA

JDBC Example Linkshttp://www.mkyong.com/tutorials/jdbc-tutorials/

2014-10-24

Page 12: Java EE - FHWS 2014 - 4 JPA

JDBC auf dem AppServer

Datasources… Wildfly Configuration: http://localhost:9990/ vs. standalone.xml

<datasource jta="true" jndi-name="java:jboss/datasources/FHWS-DS" pool-name="FHWS-DS" enabled="true" use-java-context="true">

<connection-url>jdbc:h2:tcp://localhost/D:/fhws/servers/database/fhws-db

</connection-url>

<driver>h2</driver>

<security>

<user-name>sa</user-name>

<password>sa</password>

</security>

</datasource>

Monitoring

2014-10-24

Page 13: Java EE - FHWS 2014 - 4 JPA

JDBC auf dem AppServer

JNDI Lookup @Resources

2014-10-24

Page 14: Java EE - FHWS 2014 - 4 JPA

Wieso werden neben JDBC noch andere Techniken

genutzt?Komfortables Handling von OR Mapping Wartung …

2014-10-24

Page 15: Java EE - FHWS 2014 - 4 JPA

JAVA PERSISTENCE API

2014-10-24

Page 16: Java EE - FHWS 2014 - 4 JPA

Java Persistence API

Die Java Persistence API (JPA) ist eine Schnittstelle für Java-Anwendungen, die die Zuordnung und die Übertragung von Objekten zu Datenbankeinträgen vereinfacht. Sie vereinfacht die Lösung des Problems der objektrelationalen Abbildung, das darin besteht, Laufzeit-Objekte einer Java-Anwendung über eine einzelne Sitzung hinaus zu speichern (Persistenz), wobei relationale Datenbanken eingesetzt werden können, die ursprünglich nicht für objektorientierte Datenstrukturen vorgesehen sind.

[Quelle: http://de.wikipedia.org/wiki/Java_Persistence_API]

2014-10-24

Page 17: Java EE - FHWS 2014 - 4 JPA

Java Persistence API

The Java Persistence API provides a POJO persistence model for object-relational mapping. The Java Persistence API was developed by the EJB 3.0 software expert group as part of JSR 220, but its use is not limited to EJB software components. It can also be used directly by web applications and application clients, and even outside the Java EE platform, for example, in Java SE applications. See JSR 220.

[Quelle: http://www.oracle.com/technetwork/java/javaee/tech/persistence-jsp-140049.html]

2014-10-24

Page 18: Java EE - FHWS 2014 - 4 JPA

Object-Relationales Mapping (ORM) gab es auch schon vor Java. 1994 veröffentlichte die Firma „The Object People“ das Produkt TopLink für die Sprache Smalltalk. TopLink war der Vorläufer von eclipseLink, der aktuellen Referenzimplementierung der JPA.

2014-10-24

Page 19: Java EE - FHWS 2014 - 4 JPA

JPA – SpecReference Implementation: eclipseLinkAlternative: Hibernate

Konkrete Implementierung hängt vom Application Server ab!

2014-10-24

Page 20: Java EE - FHWS 2014 - 4 JPA

Java Persistence API

Tutorials / Nachschlagewerke

http://docs.oracle.com/javaee/7/tutorial/doc/persistence-intro.htm http://www.vogella.com/tutorials/JavaPersistenceAPI/article.html

2014-10-24

Page 21: Java EE - FHWS 2014 - 4 JPA

JPA

Zentrale Begriffe:

Konfiguration: persistence.xml Entity Manager Factory / @PersistenceUnit Enitiy Manager / @PersistenceContext JPQL / Criteria API Transaction Type: RESOURCE_LOCAL / JTA UserTransaction

2014-10-24

Page 22: Java EE - FHWS 2014 - 4 JPA

Status der JPA-Entity NEW MANAGED DETACHED REMOVED

EntityManager find persist merge Remove createNamedQuery

2014-10-24

Page 23: Java EE - FHWS 2014 - 4 JPA

JPA Relationen

OneToOne OneToMany ManyToOne ManyToMany

Bidirectional / Unidirectional

http://en.wikibooks.org/wiki/Java_Persistence/OneToMany

http://www.vogella.com/tutorials/JavaPersistenceAPI/article.html

2014-10-24