08.09.2012

JEE6 Tutorial - Part 4 - Datenbank Entity erstellen

Im vierten Teil des Tutorials wird ein Datenbank-Entity erstellt und ein Persistence Provider und eine Data Source eingerichtet.

Bisher kamen wir wunderbar ohne die JEE-Wizards beim Erzeugen der Klassen aus. Beim Anlegen der Datenbank-Entity verwenden wir den Wizard New Entity Class, um uns das manuelle Erstellen der Datei persistence.xml zu ersparen. Natürlich kann man diese Datei auch per Hand anlegen und benötigt keinen Wizard dazu. Es soll aber gezeigt werden, dass es manchmal einfacher ist, einen Wizard zu verwenden.

Als erstes wird Source Packages selektiert und im Kontextmenü New->Entity Class... auswählen.

Create New Project

Der erste Wizard-Schritt Choose File Type wird automatisch übersprungen. In zweiten Schritt Name and Location wählen wir als Class name den Wert UrlManagerEntity und tragen als Package den Wert org.hameister.urlmanager ein. Wichtig ist, dass die Checkbox Create Persistence Unit aktiviert ist. Weiter geht es mit Next.

Create New Project

Im Schritt Provider and Database kann unter Persistence Unit Name der Wert URLManagerPU unverändert belassen werden. Als Persistence Provider wird EclipseLink verwendet. Für die Data Source verwenden wir jdbc/sample und setzen als Table Generation Strategy den Radiobutton Drop and Create. ACHTUNG: Bei jedem Start wird dadurch die Datenbank zurückgesetzt. Also nichts für den produktiven Betrieb. :-)

Create New Project

Hier wurde der Wizard zum Anlegen der Klasse URLManagerPU verwendet, damit die Datei persistence.xml generiert wird. Diese ist im Projekt unter Configuration Files zu finden und hat den folgenden Inhalt:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
  <persistence-unit name="URLManagerPU" transaction-type="JTA">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <jta-data-source>jdbc/sample</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
    </properties>
  </persistence-unit>
</persistence>

Dort kann später der Wert drop-and-create-tables auf create-tables umgesetzt werden, wenn die Implementierung fertig ist und die Anwendung "produktiv" genutzt werden soll.

In der generierten Klasse UrlManagerEntity wird folgender Code ergänzt:

package org.hameister.urlmanager;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

/**
 *
 * @author Hameister
 */
@Entity
public class UrlManagerEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String url;

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
}

Da die Entity eine URL speichern soll, wird eine private Variable url vom Type String definiert. Außerdem wird ein getter und ein setter für das Data-Binding angelegt.

Im 5. Teil des Tutorials wird ein Presentation Model (Backing Bean) erstellt, welches die Busineslogik von der Anzeige trennt: Backing Bean für das Presention Model anlegen