Java, JPA & EJB Q&A — ArrayList, TreeSet, ORM, CRUD

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 11,07 KB

Java, JPA und EJB: Fragen und Antworten

1. Was sind die Unterschiede zwischen ArrayList und TreeSet?

A: Eine ArrayList erlaubt Duplikate und erhält die Einfügereihenfolge. Ein TreeSet erlaubt keine Duplikate und speichert Elemente in sortierter Reihenfolge.

2. Erkläre: Was ist Object-Relational Mapping (ORM)?

A: ORM ist ein Mechanismus zur Zuordnung von Java-Objekten im Speicher zu Tabellen in einer relationalen Datenbank. Es ermöglicht, dass Objekte in relationalen Datenbanksystemen persistent gespeichert und mittels komplexer Abfragen verwaltet werden. Jede Instanz eines Objekts entspricht einem Datensatz in der Datenbank.

3. Wann sollten EJBs in einer Anwendung verwendet werden?

A: Wenn die Anwendung skalierbar sein muss (z. B. bei vielen Benutzern oder Verteilung auf mehrere Rechner), wenn Transaktionen zur Sicherung der Datenintegrität erforderlich sind, oder wenn die Anwendung eine hohe Anzahl von Clients hat.

4. Erkläre: Was ist eine Session Bean und eine Message-Driven Bean?

A: Session Beans sind in der Regel nicht persistent und werden häufig verwendet, um die Interaktion zwischen Entity Beans zu koordinieren und Geschäftsprozesse zu implementieren.
Message-Driven Beans werden verwendet, um asynchron Nachrichten von einem Messaging-System (z. B. JMS) zu empfangen und zu verarbeiten.

5. Erkläre: Was ist eine Persistence Unit?

A: Eine Persistence Unit ist eine Menge von Klassen, die auf eine relationale Datenbank abgebildet werden. Die Konfiguration erfolgt in der Datei persistence.xml, die im META-INF-Ordner liegt. Diese Datei kann mehrere Persistence Units konfigurieren.

6. CRUD: Wofür steht das Akronym?

R:

  • Create → INSERT
  • Read (Abrufen) → SELECT
  • Update → UPDATE
  • Delete → DELETE

7. Erkläre: Was ist ein POJO?

A: POJO = Plain Old Java Object. Das sind Java-Objekte nach einem vereinfachten Design, im Gegensatz zu spezialisierten Komponenten wie EJBs. Eine JavaBean ist ein POJO, das bestimmte Regeln erfüllt, z. B. einen parameterlosen Default-Konstruktor und Standard-Getter/Setter für seine Attribute. (Siehe z. B. Objeto, Java, JavaBean.)

9. Erkläre den Persistence Context (Persistenzkontext).

A: Der Persistence Context ist eine Umgebung (Session), die die Menge der Objektinstanzen enthält, die vom EntityManager verwaltet werden. Innerhalb dieses Kontexts werden Änderungen an Entitäten verfolgt und beim Commit in die Datenbank synchronisiert.

10. Erkläre die Unterschiede zwischen Stateful Session Beans und Stateless Session Beans.

A: Stateful Session Beans halten konversationellen Zustand zwischen Aufrufen für einen bestimmten Client. Stateless Session Beans halten keinen konversationellen Zustand; sie werden in Instanzpools bereitgestellt und können von verschiedenen Clients wiederverwendet werden.

Multiple-Choice-Fragen (1–23)

  1. 1. Welcher Import ist erforderlich, um Listener zu implementieren:

    1. import javax.swing.*;
    2. import java.awt.*;
    3. Import javax.awt.*;
    4. import java.awt.event.*;
  2. 2. Welche Methode wird verwendet, um den JDBC-Treiber zu laden?

    1. Connection.createStatement()
    2. Class.forName()
    3. Class.loadDriver
    4. Connection.DriverManager()
  3. 3. Welche Annotation sollten Session-Bean-Schnittstellen verwenden, wenn ihre Methoden lokal vorhanden sind?

    1. @Local
    2. @Stateless
    3. @Remote
    4. @Stateful
  4. 4. Welcher der folgenden Server ist ein Beispiel für einen EJB-Server auf der Business-Ebene?

    1. Internet Information Service
    2. PersistServer
    3. Java Business Application Server
    4. JBoss
  5. 5. Welche Annotation wird verwendet, um eine Klasse als persistent zu deklarieren?

    1. @AutoWert
    2. @Entity
    3. @Identity
    4. @GeneratedValue
  6. 6. Welche Arten von Session Beans gibt es?

    1. EntityBeans und MessageDriven
    2. Persist und Transient
    3. Stateful und Stateless
    4. Temporär und Permanent
  7. 7. Welcher Befehl wird verwendet, um Änderungen in der Datenbank rückgängig zu machen?

    1. em.getTransaction().save()
    2. em.getTransaction().commit()
    3. em.getTransaction().close()
    4. em.getTransaction().rollback()
  8. 8. In welcher Schicht befindet sich der EJB-Server?

    1. Client-Schicht
    2. Business-Schicht
    3. EIS-Schicht
    4. Web-Schicht
  9. 9. Über die Collection TreeSet kann man sagen, dass:

    1. Es ist ein geordnetes Set von Elementen; es gibt keine doppelten Elemente.
    2. Es ist ein Set von ungeordneten Elementen, bei dem es doppelte Elemente gibt.
    3. Es ist eine geordnete Liste, die immer wieder Elemente enthält.
    4. Es ist eine ungeordnete Liste mit wiederholten Elementen.
  10. 10. Über TreeSet kann man sagen:

    1. Geordnetes Set von Elementen. Es gibt keine doppelten Elemente.
    2. Ungeordnetes Set von Elementen. Es gibt keine doppelten Elemente.
    3. Geordnetes Set von Elementen. Es gibt wiederholte Elemente.
    4. Ungeordnetes Set von Elementen. Es gibt wiederholte Elemente.
  11. 11. Womit verwendet man, um eine Liste zu sortieren?

    1. Collections.sort(List)
    2. Collections.random(List)
    3. Collections.shuffle(List)
    4. Collections.retainAll(List)
  12. 12. Die Eigenschaft toplink.ddl-generation value="create-tables" in persistence.xml bewirkt:

    1. Erstellt neue Tabellen in der Datenbank und überschreibt die alten.
    2. Erstellt neue Tabellen in der Datenbank, wenn sie nicht existieren; führt nur Updates durch.
    3. Ist nur eine Deklaration ohne Auswirkung zur Laufzeit.
    4. Generiert ein Skript, um die Tabellen in der Datenbank zu aktualisieren.
  13. 13. Welche Methode wird verwendet, um einen Datensatz aus der Datenbank zu laden und in ein Objekt der Ziel-Entity zu verwandeln?

    1. Entidade e = em.find(Entidade.class, key)
    2. Entidade e = em.findEntity(Entidade.class, key)
    3. Entidade und em.find = (key, Entidade.class)
    4. Entidade e = em.localFind(Entidade.class, key)
  14. 14. Welche Annotation wird verwendet, um ein Attribut zu kennzeichnen, das nicht in der Datenbank gespeichert wird?

    1. @Id
    2. @Managed
    3. @Transient
    4. @Removed
  15. 15. Die Anweisung <persistence-unit name="persistencia"/> in persistence.xml bewirkt:

    1. Definiert die Art der Persistence Unit.
    2. Definiert den Namen der Persistence Unit, der beim Aufruf von Persistence.createEntityManagerFactory() verwendet wird; sie enthält die Datenbank-Einstellungen.
    3. Definiert den Namen der Persistence Unit, der bei createEntityManager() verwendet wird.
    4. Definiert den Namen der Persistence Unit, die von der persistenten Klasse verwendet wird.
  16. 16. Welcher Befehl wird verwendet, um eine Entität wirklich aus der Datenbank zu löschen?

    1. em.removeEntity(e)
    2. em.elimina(e)
    3. em.remove(e)
    4. em.eliminaEntity(e)
  17. 17. Um eine zustandslose Session Bean nicht im Gesprächszustand mit dem Client zu halten — welche wird zurückgezogen?

    1. Stateless Session Bean
    2. Stateful Session Bean
    3. Entity Session Bean
    4. MessageDriven Session Bean
  18. 18. Welcher Befehl erstellt eine EntityManagerFactory?

    1. EntityManagerFactory emf = Persistence.createEntityManagerFactory("test");
    2. EntityManager in emf.createEntityManager = ();
    3. EntityTransaction em.getTransaction trans = ();
    4. Aluno a = new Student();
  19. 19. Welche Optionen haben wir, um auf eine Datenbank mit JPA-Zugang zuzugreifen?

    1. Nur native SQL
    2. Native SQL und JPA QL
    3. Native SQL, JPA QL und die find()-Methode
    4. Native SQL, JPA QL, find()-Methode und executeQuery()
  20. 20. Welche der folgenden Aussagen ist keine Rechtfertigung für den Einsatz von EJB?

    1. Die Bewerbung sollte in drei Schichten durchgeführt werden, um Wartung und Vertrieb zu erleichtern.
    2. Wenn die Anwendung skalierbar sein muss (viele Benutzer, Verteilung auf mehrere Rechner).
    3. Wenn Transaktionen notwendig sind, um die Datenintegrität zu gewährleisten.
    4. Wenn die Anwendung eine große Anzahl von Clients hat; Business-Logik in serverseitigen Komponenten erleichtert die Wartung.
  21. 21. Welche Zustände gehören zum Lebenszyklus einer Entität?

    1. new, Managed Persisted, zuletzt aktualisiert
    2. new, Managed, Removed, Detached
    3. New, entfernt erinnert, Committed
    4. Merged, removed Persisted, New
  22. 22. Welche Methoden gehören zur EntityManager-Schnittstelle?

    1. createQuery(), createNamedQuery(), löschen(), CancelTransaction()
    2. begin(), create(), refresh(), delete()
    3. commit(), rollback(), merged(), Unabhängiges()
    4. refresh(), merge(), persist(), remove()
  23. 23. Innerhalb des Persistence Context: Wenn eine Entität nicht mehr vom EntityManager verwaltet wird und Änderungen an der Entität nicht in der Datenbank erfasst werden, sagen wir, sie befindet sich im Zustand:

    1. DETACHED
    2. MANAGED
    3. NEW
    4. CONTROLED

Verwandte Einträge: