IUBH IPWA02 Programmierung von industriellen Informationssystemen mit Java EE

IUBH IPWA02 Programmierung von industriellen Informationssystemen mit Java EE

IUBH IPWA02 Programmierung von industriellen Informationssystemen mit Java EE


Fichier Détails

Cartes-fiches 39
Langue Deutsch
Catégorie Informatique
Niveau Université
Crée / Actualisé 06.03.2017 / 08.10.2024
Lien de web
https://card2brain.ch/box/20170306_iubh_ipwa02_programmierung_von_industriellen_informationssystemen_mit_java_ee
Intégrer
<iframe src="https://card2brain.ch/box/20170306_iubh_ipwa02_programmierung_von_industriellen_informationssystemen_mit_java_ee/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Was versteht man unter Pflichtpfeld-Validierung?

Die Überprüfung ob der Benutzer eine zwingend erforderliche Eingage getätigt hat

<h:inputText required="true"/>

Was versteht man unter Format-Validierung?

Die Überprüfung ob der Benutzer ein bestimmtes Format eingehalten hat

<h:inputText ......>

<f:validateRegex pattern="[a-zA-Z0-9]+.(jpg|jpeg|png|gif)"

</h:

Was ist die Fachliche-Validierung?

Einhaltung von Wertebereichen

Was sind Benutzerdefinierte Validierer?

Selbstentwickelte Validierungen, meistens in der Controller Klasse

Was ist ein Standard-Konvertierer?

Automatisches Umwandeln einer Benutzereingabe

Die Eingaben stehen als Zeichenkette in der Komponente und werden dann automatisch in den Datentyp passend zum verknüpften Attribut umgewandelt

Standard-Konvertierers Datum?

<f:convertDateTime  type="date" dateStyle="short" pattern="dd.MM.yyyy" />

Standard-Konvertierer Währung

<f:convertNumber   type="currency"  currencySymbol="EUR" />

Fehlermeldung direkt an der Komponente anzegen?

<h:message for="nameDerInputKomponente"   />

Seitennavigation mit JSF?

<h:commandLink value="Login" action="#{controller.login()}"   />

Events mit JSF?

Es gibt Komponenten die Ereignisse generieren und Komponenten die Ereignisse empfangen.

in einer Komponente:

<f:event  type="javax.faces.event.PostValidateEvent"   listener="#{controller.postValidate()}" />

Was bedeutet AKID im zusamenhang mit Datenbanken?

Atomarität

Änderungen werden, wenn sie aus mehreren einzelnen Werteänderungen bestehen, ganz
oder gar nicht ausgeführt.

Konsistenz

Zusammengehörige Datensätze müssen eindeutig identifizierbar sein. Über die eindeutige
Identifikation können Datensätze auf andere verweisen.

Isolation

Der gleichzeitige Zugriff auf den persistenten Speicher darf nicht zu Beeinflussungen
führen.

DauerhaftigkeitAlle Daten, die fehlerfrei und unter Beachtung der obigen Anforderungen gespeichert
wurden, sind nach dem Speichern beständig gespeichert und für alle lesenden Zugriffe
sichtbar.

Nur durch eine explizite Löschung dürfen Daten entfernt werden.

 

Was sind Datenbankmanagementsysteme (DBMS)?

Datenbankmanagementsysteme werden für die Persistierung von Daten verwendet.
Sie sind eigenständige Programme,die einen persistenten Datenspeicher verwalten.

Was sind Relationale Datenbanken?

Vertreter von Datenbankmanagementsystemen.

 

Relationale Datenbanken speichern Datensätze gleichen Typs in Tabellen.


Eine Zeile enthält alle Werte eines Datensatzes

DieSpalten enthalten die einzelnen Attributwerte.

 

Was sind Fremdschlüssel?

Fremdschlüssel werden in einem Datensatz als Verweis auf einen anderen Datensatz verwendet.

Objektrelationales Mapping?

Die relationale und die objektorien tierte Sicht lassen sich aufeinanderabbilden

Tabellen stehen für Klassen,

Datensätze für Objekte

Spalten für Attribute

Beziehungen in Tabellen?

Beziehungen zwischen Objekten werden mittels Fremdschlüsselbeziehungen in der relationalen Datenbank abgebildet.

Was ist die referentielle Integrität?

Verlangt dass der durch einen Fremdschlüssel bezeichnete Datensatz auch wirklich existiert.
Ein Fehlen würde einen inkonsistenten Zustand der Datenbank bedeuten

Welche Schritte sind notwendig für die Umwandlung von relationalen Daten in Objektdaten?

Zuordnung von Klasse und Tabelle

Konvertierung zwischen Java und Datenbankdatentypen

Speichern bzw. Erzeugung der verbundenen Objekte

Was sind ORM-Bibliotheken?

Erleichtern die Kommunikation mit relationalen Datenbanken und übernehmen die Übersetzung von objektorientierten in relationale Daten und umgekehrt.

Was ist die Java Persistence API (JPA)

Eine Schnittstelle für Java-Anwendungen zur Speicherung von Objekten in relationalen Datenbanken.

Was sind JPA Provider?

Java-Bibliotheken,die die in der JPA-Schnittstelle definierte Funktionalität konkret implementieren (Hibernate)

Was ist die JPA Persistence Unit?

Umfasst die Einstellungen für die Verbindung zwischen Web-Anwendung und Datenbank.

Was bedeutet @Entitiy

Dient der Kennzeichnung von Klassen, deren Objekte in einer Datenbank persistiert werden.

Was müssen Entitäten in den Klassen definieren?

Parameterlosen Konstruktor
Getter- und Setter-Methoden für alle Attribut

Was bedeutet @Id?

Speichert den Wert als Schlüsselattribut in den DB

Was bedeutet @Temporal (TemporalType. DATE)   ?

Kennzeichnet zeitliche Angaben.

Was macht der EntityManager?

Stellt die Verbindung zur Datenbank aus der eigenen Anwendung her und bietet die grundlegenden Methoden zum Speichern, Aktualisieren und Löschen von Objekten in derDatenbank.

Wie wird ein CommandLink erzeugt?

<h:commandLink    id="neuerArtikel" value="Artikel erstellen"  action="#{artikelController.add()}"/>   

Wie wird ein Entity in der DB gespeichert?

Mit der Methode persist von EntityManager wird ein Objekt in der Datenbank gespeichert.

void saveArticle(Artikel neuerArtikel) {    


    EntityManager em = entityManagerFactory.createEntityManager();    
   
    EntityTransaction t = em.getTransaction(); 
   
    t.begin();    //Starten der Transaktion
         em.persist(neuerArtikel);    //Persistieren des neuen Artikels
    t.commit();    //Beenden der Transaktion
       
    em.close();     //Schließen des EntityManagers
}    

 

 

Was ist eine Transaktion?

Kapselt alle verändernden Operationen, sodass sie entweder am Stück oder gar nicht ausgeführt werden.
Alle verändernden Operationen müssen in einer Transaktion ausgeführt werden!

Wie können Daten in der DB aktualisiert werden?

Mit der Methode merge von EntityManager aktualisiert man einen bereits vorhandenen Datensatz mit den Werten aus
dem übergebenen Objekt.

em.merge(neuerArtikel);

Wie können Schlüsselattribute automatisch hochgezählt werden?

Die Annotation @GeneratedValue wirkt sich auf die Tabellendefinition aus und bewirkt die automatische Erzeugung eines
Wertes für ein Schlüsselattribut.

@Id    
@GeneratedValue(strategy = GenerationType. AUTO)    
private int nr;   

Was sind Assoziationen zwischen Objekten?

Beziehungen zwischen Objekten

Welche Assoziationen gibt es?

@OneToMany

Ein Objekt steht mit mehreren anderen in Beziehung. Es verwaltetdiese im Allgemeinen in einer Aufzählung.

@ManyToOne

Das Gegenstück zur Annotation @OneToMany

@ManyToMany

Die assoziierten Objekte tauchen auf beiden Seiten der Assoziation in Aufzählungen auf.

@OneToOne

Eine Eins-zu-Eins-Beziehung zwischen zwei Objekten; auf beiden Seiten als Attribut repräsentiert.

Wie werden Assoziation in der DB dargestellt?

Assoziationen zwischen Objekten werden in einer Assoziationstabelle in der Datenbank gespeichert. Sie enthält Verweise
auf die in Beziehung stehenden Datensätze.

Vererbung mit  JPA?

 

Die Vererbung mittels extends wird von JPA automatisch beachtet und umgesetzt.

 

Kein weiteres Schlüsselattribut!

 

Wie werden weitere Attribute bei einer Veerbung in der DB dargestellt?

Die Standard-Strategie bei der Abbildung von Vererbungsbeziehungen in der Datenbank ist das Erweitern der
klasse um Spalten für die zusätzlichen Attribute der Unterklasse.

Mit der Annotation @Inheritance kann die StandardStrategie angepasst werden.
Die Annotation muss in der obersten Oberklasse angegeben werden!

Dann wird eine neue Tabelle erstellt!

@Entity    
@Inheritance(strategy = InheritanceType. JOINED)    
public class Artikel {

 

Jede Unterklasse erhält eine
eigene Tabelle; ein
Fremdschlüssel dient zur
Identifikation des Oberklasse-
Datensatzes.....

 

 

 

 

Wie kann man Objekte aus der Datenbank entfernen?

Mit der Methode remove von EntityManager löscht man Objekte aus der Datenbank.

void deleteRatingForArticle(Bewertung bewertung, Artikel artikel) {    
             
    EntityManager em = entityManagerFactory.createEntityManager();    
    EntityTransaction t = em.getTransaction();    
    t.begin();   
         artikel = em.merge(artikel);
         bewertung = em.merge(bewertung);   
    t.commit();    
    
    artikel.getBewertungen().remove(bewertung);    
             
    t.begin();   
         em.merge(artikel);   
         em.remove(bewertung);   
    t.commit();   
             
    em.close();    
}    
 

Beim Löschen von Objekten spielt die Beachtung der referentiellen Integrität eine entscheidende Rolle!

Was sind Data Access Objects(DAO`s)?

Kapseln sämtliche Datenbankoperationen für einzelne Entitäten.
Für jede Entität gibt es eine korrespondierende DataAccess ObjectKlasse.