20
Software Technik Christian Baranowski HTWG Konstanz Datenbankzugriff mit der Java Persistence API

Datenbankzugriff mit der Java Persistence Api

Embed Size (px)

Citation preview

Page 1: Datenbankzugriff mit der Java Persistence Api

Software Technik

Christian Baranowski

HTWG Konstanz

Datenbankzugriff mit der Java Persistence API

Page 2: Datenbankzugriff mit der Java Persistence Api

Requirement Analysis

Testing

System Design

Coding

Delivery

Wasserfallmodell

Page 3: Datenbankzugriff mit der Java Persistence Api

Wiederholung AJAX

Page 5: Datenbankzugriff mit der Java Persistence Api

•Fragen Sie alle Aufgaben vom Server ab via AJAX und zeigen Sie diese in ihrer HTML Anwendung an.

Übungen I

Page 7: Datenbankzugriff mit der Java Persistence Api

Einführung in dieJava Persistence API

Disk

Data

Page 8: Datenbankzugriff mit der Java Persistence Api

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!

Page 9: Datenbankzugriff mit der Java Persistence Api

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

Page 10: Datenbankzugriff mit der Java Persistence Api

Basic Mappings@Table(name = "Adr")@Entitypublic 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;

Warum sollte eine Entity die Schnittstelle Serializable implementieren?

Page 11: Datenbankzugriff mit der Java Persistence Api

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>();

Page 12: Datenbankzugriff mit der Java Persistence Api

@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>();

Assoziationen / Relationen

Page 15: Datenbankzugriff mit der Java Persistence Api

Entity

•Entity hat immer einen eindeutigen Schlüssel (ID) dieser identifiziert die Entität

•Equals auf Basis der ID...

Page 16: Datenbankzugriff mit der Java Persistence Api

Entity Manager

•API bietet alle Funktion für den Datenbankzugriff:

•persist

•remove

•createQuery

•merge

•findXXX

•....

Page 17: Datenbankzugriff mit der Java Persistence Api

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!

Page 18: Datenbankzugriff mit der Java Persistence Api

Detached Entities

•Managed Entities werden vom Entity Manager gelöst wenn:

•clear oder detach

•mittels rollback

•Entity Manager closed

Page 19: Datenbankzugriff mit der Java Persistence Api

•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...

Übungen II

Page 20: Datenbankzugriff mit der Java Persistence Api

Software Technik

Christian Baranowski

HTWG Konstanz

Testing

17.12.2010 um 14:00 Uhr