SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Software Technik
            HTWG Konstanz



        Datenbankzugriff mit der
            Java Persistence API



                            Christian Baranowski
Requirement Analysis          Wasserfallmodell

              System Design



                          Coding



                                   Testing



                                             Delivery
Wiederholung AJAX
Asynchronous JavaScript and XML



                       Heute meist
                       JSON
Übungen I
•Fragen Sie alle Aufgaben vom Server ab via AJAX
 und zeigen Sie diese in ihrer HTML Anwendung an.
Einschub
Was sind Java Annotation?

Als Annotation wird im Zusammenhang mit der
Programmiersprache Java ein Sprachelement
bezeichnet, das die Einbindung von Metadaten in
den Quelltext erlaubt. - Wikipedia
Einführung in die
Java Persistence API

         Data




         Disk
Was ist JPA?
•Ein Standard um Objekt-Relationalen Abbildung
 von Objekten in Datenbanken zu ermöglichen.
•Für die Abbildung der Objekte auf die Tabellen
 (Datenbank) werden Java Annotationen genutzt
•JPA ist spezifiziert durch JSR - 220
•JPA ist Teil der EJB 3.X Spezifikation
•JPA kann in Java SE und Java EE genutzt werden!
Objekte sind POJOs in JPA
•Was sind POJO?
  •POJO steht für Plain Old Java Object
  •Unter POJO versteht man ein gewöhnliches
     Java Objekt in Abgrenzung zu einem
     Enterprise JavaBean.
•Beispiel: Seller Klasse
Warum sollte eine Entity die
Basic Mappings                  Schnittstelle Serializable
                                implementieren?
  @Table(name = "Adr")
  @Entity
  public class Address implements Serializable {
      @Id
      @Column(name = "ADDRESS_ID")
      @GeneratedValue(strategy = GenerationType.SEQUENCE)
      private long id;
      @Basic
      private String city;
      @Basic
      private String country;
      @Basic
      private String province;
      @Basic
      @Column(name = "P_CODE")
      private String postalCode;
      @Basic
      private String street;
Assoziationen / Relationen
  @OneToOne(cascade = CascadeType.ALL, orphanRemoval = true,
      fetch = FetchType.LAZY)
  @JoinColumn(name = "ADDR_ID")
  private Address address;

  @ManyToOne(fetch = FetchType.LAZY)
  private JobTitle jobTitle;

  @ManyToOne(fetch = FetchType.LAZY)
  @JoinColumn(name = "MANAGER_ID")
  private Employee manager;

  @OneToMany(mappedBy = "manager")
  private List<Employee> managedEmployees =
     new ArrayList<Employee>();
Assoziationen / Relationen
  @OneToMany(mappedBy = "owner", cascade = CascadeType.ALL,
     orphanRemoval = true)
  private List<PhoneNumber> phoneNumbers = new
     ArrayList<PhoneNumber>();

  @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
  @JoinColumn(name="EMP_ID")
  private List<Degree> degrees = new ArrayList<Degree>();

  @ManyToMany
  @JoinTable(name = "PROJ_EMP",
    joinColumns = @JoinColumn(name = "EMP_ID"),
    inverseJoinColumns = @JoinColumn(name = "PROJ_ID"))
  private List<Project> projects = new ArrayList<Project>();
Cascade Type
•ALL - Cascade all operations
•MERGE - Cascade merge operation
•PERSIST - Cascade persist operation
•REFRESH - Cascade refresh operation
•REMOVE - Cascade remove operation
Fetch Type
•EAGER - Defines that data must be eagerly
fetched.
•LAZY - Defines that data can be lazily fetched.
Entity
 •Entity hat immer einen eindeutigen Schlüssel (ID)
  dieser identifiziert die Entität
 •Equals auf Basis der ID...
Entity Manager
•API bietet alle Funktion für den Datenbankzugriff:
 •persist
 •remove
 •createQuery
 •merge
 •findXXX
 •....
Entity Manager
•Wenn die Objekte (Entity Klassen) auch als Daten
 Transfer Objekte genutzt werden sollen können
 sie vom Entity Manager gelöst werden man spricht
 von detached Entities!
Detached Entities
•Managed Entities werden vom Entity Manager
 gelöst wenn:
 •clear oder detach
 •mittels rollback
 •Entity Manager closed
Übungen II

•Erweitern Sie Ihre Aufgaben Verwaltung um eine
 Datenbank Anbindung mittels JPA

 •Schritt 1. Domain Modell markieren mit den JPA
  Annotationen für das OR Mapping...

 •Schritt II. Repository Funktionen zum speichern
  und laden einer Aufgabe umsetzen...
Software Technik
            HTWG Konstanz



                                      Testing
                        17.12.2010 um 14:00 Uhr




                             Christian Baranowski

Mais conteúdo relacionado

Destaque

Destaque (8)

Build Prozesse und Java Servlets
Build Prozesse und Java ServletsBuild Prozesse und Java Servlets
Build Prozesse und Java Servlets
 
Build Prozesse und Configuration Management
Build Prozesse und Configuration ManagementBuild Prozesse und Configuration Management
Build Prozesse und Configuration Management
 
Java Servlets und AJAX
Java Servlets und AJAX Java Servlets und AJAX
Java Servlets und AJAX
 
OSGi Community Updates 2012
OSGi Community Updates 2012OSGi Community Updates 2012
OSGi Community Updates 2012
 
Domain Driven Design - 10min
Domain Driven Design - 10minDomain Driven Design - 10min
Domain Driven Design - 10min
 
Software Testing und Qualitätssicherung
Software Testing und QualitätssicherungSoftware Testing und Qualitätssicherung
Software Testing und Qualitätssicherung
 
Continuous Delivery in Action
Continuous Delivery in ActionContinuous Delivery in Action
Continuous Delivery in Action
 
2009 - Modell getriebene fit tests
2009 - Modell getriebene fit tests2009 - Modell getriebene fit tests
2009 - Modell getriebene fit tests
 

Semelhante a Datenbankzugriff mit der Java Persistence Api

Speeding up Java Persistence
Speeding up Java PersistenceSpeeding up Java Persistence
Speeding up Java Persistencegedoplan
 
Speeding up Java Persistence
Speeding up Java PersistenceSpeeding up Java Persistence
Speeding up Java Persistencegedoplan
 
Workshop zu Hibernate 3.2.2 GA
Workshop zu Hibernate 3.2.2 GAWorkshop zu Hibernate 3.2.2 GA
Workshop zu Hibernate 3.2.2 GAOliver Belikan
 
Feige sein! Testen im Java-EE-Umfeld
Feige sein! Testen im Java-EE-UmfeldFeige sein! Testen im Java-EE-Umfeld
Feige sein! Testen im Java-EE-Umfeldgedoplan
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenChristian Münch
 
Anwendung von Java Enterprise Edition (J2EE)
Anwendung von Java Enterprise Edition (J2EE)Anwendung von Java Enterprise Edition (J2EE)
Anwendung von Java Enterprise Edition (J2EE)Andreas Schreiber
 
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"schellsoft
 
javaPersistenceInActionFeaturesJenseitsDesEntryLevels
javaPersistenceInActionFeaturesJenseitsDesEntryLevelsjavaPersistenceInActionFeaturesJenseitsDesEntryLevels
javaPersistenceInActionFeaturesJenseitsDesEntryLevelsgedoplan
 
JPA – Der Persistenz-­Standard in der Java EE und SE
JPA – Der Persistenz-­Standard in der Java EE und SEJPA – Der Persistenz-­Standard in der Java EE und SE
JPA – Der Persistenz-­Standard in der Java EE und SEhwilming
 
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...GFU Cyrus AG
 
Effiziente datenpersistierung mit JPA 2.1 und Hibernate
Effiziente datenpersistierung mit JPA 2.1 und HibernateEffiziente datenpersistierung mit JPA 2.1 und Hibernate
Effiziente datenpersistierung mit JPA 2.1 und HibernateThorben Janssen
 
dotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Servicesdotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile ServicesSascha Dittmann
 
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDISchlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDIadesso AG
 
Architektur und Code im Einklang [DeveloperCamp 2017]
Architektur und Code im Einklang [DeveloperCamp 2017]Architektur und Code im Einklang [DeveloperCamp 2017]
Architektur und Code im Einklang [DeveloperCamp 2017]Markus Harrer
 
Doctrine 2 - An Introduction (German)
Doctrine 2 - An Introduction (German)Doctrine 2 - An Introduction (German)
Doctrine 2 - An Introduction (German)Michael Romer
 
Architektur und Code im Einklang [JUG Nürnberg]
Architektur und Code im Einklang [JUG Nürnberg]Architektur und Code im Einklang [JUG Nürnberg]
Architektur und Code im Einklang [JUG Nürnberg]Markus Harrer
 
Java Persistence 2.0
Java Persistence 2.0Java Persistence 2.0
Java Persistence 2.0GFU Cyrus AG
 
Fanstatic pycon.de 2012
Fanstatic pycon.de 2012Fanstatic pycon.de 2012
Fanstatic pycon.de 2012Daniel Havlik
 

Semelhante a Datenbankzugriff mit der Java Persistence Api (20)

Java EE 5
Java EE 5Java EE 5
Java EE 5
 
Speeding up Java Persistence
Speeding up Java PersistenceSpeeding up Java Persistence
Speeding up Java Persistence
 
Speeding up Java Persistence
Speeding up Java PersistenceSpeeding up Java Persistence
Speeding up Java Persistence
 
Workshop zu Hibernate 3.2.2 GA
Workshop zu Hibernate 3.2.2 GAWorkshop zu Hibernate 3.2.2 GA
Workshop zu Hibernate 3.2.2 GA
 
node.js
node.jsnode.js
node.js
 
Feige sein! Testen im Java-EE-Umfeld
Feige sein! Testen im Java-EE-UmfeldFeige sein! Testen im Java-EE-Umfeld
Feige sein! Testen im Java-EE-Umfeld
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
 
Anwendung von Java Enterprise Edition (J2EE)
Anwendung von Java Enterprise Edition (J2EE)Anwendung von Java Enterprise Edition (J2EE)
Anwendung von Java Enterprise Edition (J2EE)
 
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
 
javaPersistenceInActionFeaturesJenseitsDesEntryLevels
javaPersistenceInActionFeaturesJenseitsDesEntryLevelsjavaPersistenceInActionFeaturesJenseitsDesEntryLevels
javaPersistenceInActionFeaturesJenseitsDesEntryLevels
 
JPA – Der Persistenz-­Standard in der Java EE und SE
JPA – Der Persistenz-­Standard in der Java EE und SEJPA – Der Persistenz-­Standard in der Java EE und SE
JPA – Der Persistenz-­Standard in der Java EE und SE
 
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
 
Effiziente datenpersistierung mit JPA 2.1 und Hibernate
Effiziente datenpersistierung mit JPA 2.1 und HibernateEffiziente datenpersistierung mit JPA 2.1 und Hibernate
Effiziente datenpersistierung mit JPA 2.1 und Hibernate
 
dotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Servicesdotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Services
 
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDISchlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
 
Architektur und Code im Einklang [DeveloperCamp 2017]
Architektur und Code im Einklang [DeveloperCamp 2017]Architektur und Code im Einklang [DeveloperCamp 2017]
Architektur und Code im Einklang [DeveloperCamp 2017]
 
Doctrine 2 - An Introduction (German)
Doctrine 2 - An Introduction (German)Doctrine 2 - An Introduction (German)
Doctrine 2 - An Introduction (German)
 
Architektur und Code im Einklang [JUG Nürnberg]
Architektur und Code im Einklang [JUG Nürnberg]Architektur und Code im Einklang [JUG Nürnberg]
Architektur und Code im Einklang [JUG Nürnberg]
 
Java Persistence 2.0
Java Persistence 2.0Java Persistence 2.0
Java Persistence 2.0
 
Fanstatic pycon.de 2012
Fanstatic pycon.de 2012Fanstatic pycon.de 2012
Fanstatic pycon.de 2012
 

Mais de Christian Baranowski

Microservices – die Architektur für Agile-Entwicklung?
Microservices – die Architektur für Agile-Entwicklung?Microservices – die Architektur für Agile-Entwicklung?
Microservices – die Architektur für Agile-Entwicklung?Christian Baranowski
 
OSGi and Spring Data for simple (Web) Application Development
OSGi and Spring Data  for simple (Web) Application DevelopmentOSGi and Spring Data  for simple (Web) Application Development
OSGi and Spring Data for simple (Web) Application DevelopmentChristian Baranowski
 
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
BDD - Behavior Driven Development Webapps mit Groovy Spock und GebBDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
BDD - Behavior Driven Development Webapps mit Groovy Spock und GebChristian Baranowski
 
Komponententests und Testabdeckung
Komponententests und TestabdeckungKomponententests und Testabdeckung
Komponententests und TestabdeckungChristian Baranowski
 
Einführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungChristian Baranowski
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungChristian Baranowski
 
Einführung Software Testing und Qualitätssicherung
Einführung Software Testing und QualitätssicherungEinführung Software Testing und Qualitätssicherung
Einführung Software Testing und QualitätssicherungChristian Baranowski
 
HTTP und Java Servlets Programmierung
HTTP und Java Servlets ProgrammierungHTTP und Java Servlets Programmierung
HTTP und Java Servlets ProgrammierungChristian Baranowski
 
Wiederholung Systementwurf - Einführung Build Prozesse
Wiederholung Systementwurf - Einführung Build ProzesseWiederholung Systementwurf - Einführung Build Prozesse
Wiederholung Systementwurf - Einführung Build ProzesseChristian Baranowski
 
Agiles Lernen und Software Entwicklung das OSGi Code Camp 2010
Agiles Lernen und Software Entwicklung das OSGi Code Camp 2010Agiles Lernen und Software Entwicklung das OSGi Code Camp 2010
Agiles Lernen und Software Entwicklung das OSGi Code Camp 2010Christian Baranowski
 

Mais de Christian Baranowski (20)

Microservices – die Architektur für Agile-Entwicklung?
Microservices – die Architektur für Agile-Entwicklung?Microservices – die Architektur für Agile-Entwicklung?
Microservices – die Architektur für Agile-Entwicklung?
 
OSGi and Spring Data for simple (Web) Application Development
OSGi and Spring Data  for simple (Web) Application DevelopmentOSGi and Spring Data  for simple (Web) Application Development
OSGi and Spring Data for simple (Web) Application Development
 
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
BDD - Behavior Driven Development Webapps mit Groovy Spock und GebBDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
 
Komponententests und Testabdeckung
Komponententests und TestabdeckungKomponententests und Testabdeckung
Komponententests und Testabdeckung
 
Einführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-Qualitätssicherung
 
OSGi Web Development in Action
OSGi Web Development in ActionOSGi Web Development in Action
OSGi Web Development in Action
 
Spock and Geb in Action
Spock and Geb in ActionSpock and Geb in Action
Spock and Geb in Action
 
Gradle and Continuous Delivery
Gradle and Continuous DeliveryGradle and Continuous Delivery
Gradle and Continuous Delivery
 
Spock and Geb
Spock and GebSpock and Geb
Spock and Geb
 
Semantic Versioning
Semantic VersioningSemantic Versioning
Semantic Versioning
 
Warum OSGi?
Warum OSGi?Warum OSGi?
Warum OSGi?
 
Top10- Software Engineering Books
Top10- Software Engineering BooksTop10- Software Engineering Books
Top10- Software Engineering Books
 
SDC - Einführung in Scala
SDC - Einführung in ScalaSDC - Einführung in Scala
SDC - Einführung in Scala
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software Entwicklung
 
Einführung Software Testing und Qualitätssicherung
Einführung Software Testing und QualitätssicherungEinführung Software Testing und Qualitätssicherung
Einführung Software Testing und Qualitätssicherung
 
HTTP und Java Servlets Programmierung
HTTP und Java Servlets ProgrammierungHTTP und Java Servlets Programmierung
HTTP und Java Servlets Programmierung
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Wiederholung Systementwurf - Einführung Build Prozesse
Wiederholung Systementwurf - Einführung Build ProzesseWiederholung Systementwurf - Einführung Build Prozesse
Wiederholung Systementwurf - Einführung Build Prozesse
 
Agiles Lernen und Software Entwicklung das OSGi Code Camp 2010
Agiles Lernen und Software Entwicklung das OSGi Code Camp 2010Agiles Lernen und Software Entwicklung das OSGi Code Camp 2010
Agiles Lernen und Software Entwicklung das OSGi Code Camp 2010
 
Systementwurf mit UML
Systementwurf mit UMLSystementwurf mit UML
Systementwurf mit UML
 

Datenbankzugriff mit der Java Persistence Api

  • 1. Software Technik HTWG Konstanz Datenbankzugriff mit der Java Persistence API Christian Baranowski
  • 2. Requirement Analysis Wasserfallmodell System Design Coding Testing Delivery
  • 4. Asynchronous JavaScript and XML Heute meist JSON
  • 5. Übungen I •Fragen Sie alle Aufgaben vom Server ab via AJAX und zeigen Sie diese in ihrer HTML Anwendung an.
  • 6. Einschub Was sind Java Annotation? Als Annotation wird im Zusammenhang mit der Programmiersprache Java ein Sprachelement bezeichnet, das die Einbindung von Metadaten in den Quelltext erlaubt. - Wikipedia
  • 7. Einführung in die Java Persistence API Data Disk
  • 8. Was ist JPA? •Ein Standard um Objekt-Relationalen Abbildung von Objekten in Datenbanken zu ermöglichen. •Für die Abbildung der Objekte auf die Tabellen (Datenbank) werden Java Annotationen genutzt •JPA ist spezifiziert durch JSR - 220 •JPA ist Teil der EJB 3.X Spezifikation •JPA kann in Java SE und Java EE genutzt werden!
  • 9. Objekte sind POJOs in JPA •Was sind POJO? •POJO steht für Plain Old Java Object •Unter POJO versteht man ein gewöhnliches Java Objekt in Abgrenzung zu einem Enterprise JavaBean. •Beispiel: Seller Klasse
  • 10. Warum sollte eine Entity die Basic Mappings Schnittstelle Serializable implementieren? @Table(name = "Adr") @Entity public class Address implements Serializable { @Id @Column(name = "ADDRESS_ID") @GeneratedValue(strategy = GenerationType.SEQUENCE) private long id; @Basic private String city; @Basic private String country; @Basic private String province; @Basic @Column(name = "P_CODE") private String postalCode; @Basic private String street;
  • 11. Assoziationen / Relationen @OneToOne(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) @JoinColumn(name = "ADDR_ID") private Address address; @ManyToOne(fetch = FetchType.LAZY) private JobTitle jobTitle; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "MANAGER_ID") private Employee manager; @OneToMany(mappedBy = "manager") private List<Employee> managedEmployees = new ArrayList<Employee>();
  • 12. Assoziationen / Relationen @OneToMany(mappedBy = "owner", cascade = CascadeType.ALL, orphanRemoval = true) private List<PhoneNumber> phoneNumbers = new ArrayList<PhoneNumber>(); @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true) @JoinColumn(name="EMP_ID") private List<Degree> degrees = new ArrayList<Degree>(); @ManyToMany @JoinTable(name = "PROJ_EMP", joinColumns = @JoinColumn(name = "EMP_ID"), inverseJoinColumns = @JoinColumn(name = "PROJ_ID")) private List<Project> projects = new ArrayList<Project>();
  • 13. Cascade Type •ALL - Cascade all operations •MERGE - Cascade merge operation •PERSIST - Cascade persist operation •REFRESH - Cascade refresh operation •REMOVE - Cascade remove operation
  • 14. Fetch Type •EAGER - Defines that data must be eagerly fetched. •LAZY - Defines that data can be lazily fetched.
  • 15. Entity •Entity hat immer einen eindeutigen Schlüssel (ID) dieser identifiziert die Entität •Equals auf Basis der ID...
  • 16. Entity Manager •API bietet alle Funktion für den Datenbankzugriff: •persist •remove •createQuery •merge •findXXX •....
  • 17. Entity Manager •Wenn die Objekte (Entity Klassen) auch als Daten Transfer Objekte genutzt werden sollen können sie vom Entity Manager gelöst werden man spricht von detached Entities!
  • 18. Detached Entities •Managed Entities werden vom Entity Manager gelöst wenn: •clear oder detach •mittels rollback •Entity Manager closed
  • 19. Übungen II •Erweitern Sie Ihre Aufgaben Verwaltung um eine Datenbank Anbindung mittels JPA •Schritt 1. Domain Modell markieren mit den JPA Annotationen für das OR Mapping... •Schritt II. Repository Funktionen zum speichern und laden einer Aufgabe umsetzen...
  • 20. Software Technik HTWG Konstanz Testing 17.12.2010 um 14:00 Uhr Christian Baranowski