Datenbankzugriff mit der Java Persistence Api

2,371 views

Published on

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,371
On SlideShare
0
From Embeds
0
Number of Embeds
753
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Datenbankzugriff mit der Java Persistence Api

  1. 1. Software Technik HTWG Konstanz Datenbankzugriff mit der Java Persistence API Christian Baranowski
  2. 2. Requirement Analysis Wasserfallmodell System Design Coding Testing Delivery
  3. 3. Wiederholung AJAX
  4. 4. Asynchronous JavaScript and XML Heute meist JSON
  5. 5. Übungen I•Fragen Sie alle Aufgaben vom Server ab via AJAX und zeigen Sie diese in ihrer HTML Anwendung an.
  6. 6. EinschubWas sind Java Annotation?Als Annotation wird im Zusammenhang mit derProgrammiersprache Java ein Sprachelementbezeichnet, das die Einbindung von Metadaten inden Quelltext erlaubt. - Wikipedia
  7. 7. Einführung in dieJava Persistence API Data Disk
  8. 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. 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. 10. Warum sollte eine Entity dieBasic 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. 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. 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. 13. Cascade Type•ALL - Cascade all operations•MERGE - Cascade merge operation•PERSIST - Cascade persist operation•REFRESH - Cascade refresh operation•REMOVE - Cascade remove operation
  14. 14. Fetch Type•EAGER - Defines that data must be eagerlyfetched.•LAZY - Defines that data can be lazily fetched.
  15. 15. Entity •Entity hat immer einen eindeutigen Schlüssel (ID) dieser identifiziert die Entität •Equals auf Basis der ID...
  16. 16. Entity Manager•API bietet alle Funktion für den Datenbankzugriff: •persist •remove •createQuery •merge •findXXX •....
  17. 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. 18. Detached Entities•Managed Entities werden vom Entity Manager gelöst wenn: •clear oder detach •mittels rollback •Entity Manager closed
  19. 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. 20. Software Technik HTWG Konstanz Testing 17.12.2010 um 14:00 Uhr Christian Baranowski

×