Upload
matthias-reining
View
105
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Java EE - FHWS 2014 - 4 JPA
Citation preview
Java EEFull Stack for Business
Applications
Java Persistence API
2014-10-24
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
JAVA PERSISTENCE API
2014-10-24
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
BESTANDSAUFNAHME
Welche Persistierungsmöglichkeiten sind bekannt? JDBC?
JDO?
Hibernate?
eclipseLink?
JPA?
MongoDB?
2014-10-24
Zum Einstieg: JDBC
2014-10-24
JDBC
Zentrale Begriffe:
SQL / RDBMS Transaction (begin, commit, rollback) Connection / Connection Pool / Datasource JDBC Driver Statement / Prepared Statement In-Memory-Database
2014-10-24
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
IN-MEMORY DATABASE
H2
http://www.h2database.com/ java –jar h2-1…jar
In-Memory Mode / Server Mode
2014-10-24
JDBCBeispiele
2014-10-24
JDBC Example Linkshttp://www.mkyong.com/tutorials/jdbc-tutorials/
2014-10-24
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
JDBC auf dem AppServer
JNDI Lookup @Resources
2014-10-24
Wieso werden neben JDBC noch andere Techniken
genutzt?Komfortables Handling von OR Mapping Wartung …
2014-10-24
JAVA PERSISTENCE API
2014-10-24
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
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
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
JPA – SpecReference Implementation: eclipseLinkAlternative: Hibernate
Konkrete Implementierung hängt vom Application Server ab!
2014-10-24
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
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
Status der JPA-Entity NEW MANAGED DETACHED REMOVED
EntityManager find persist merge Remove createNamedQuery
2014-10-24
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