Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Entity anlegen

  1. Wählen Sie im Menü File > New > Entity.
  2. Geben Sie bei Entity > Name die Bezeichnung Automaker ein.
  3. Klicken Sie auf Finish.

    Image Added

Hinweis:
  • Data Access Object - Die Einstellungen bei Data Access Object können Sie übernehmen, um zu diesem Entity ein gleichnamiges Data Access Object (DAO) zu erzeugen.
Parameter:
  • Entity - Legt im Project Management ein neues Entity an.
  • Data Accesss Obect - Legt im Project Management ein neues DAO (Data Access Obect) an.
Ergebnis:

Im Project Management wird unter Entities die Klasse Automaker und unter Data Access die Klasse AutomakerDAO angelegt. 

Image Added

  • Automaker

    Code Block
    languagejava
    themeConfluence
    @Entity
    @DAO(daoClass = AutomakerDAO.class)
    public class Automaker {
    
    	private int id;
    	public Automaker() {
    		super();
    		}
    
    	@Id
    	@GeneratedValue(strategy = GenerationType.AUTO)
    	public int getId() {
    		return id;
    	}
    
    	public void setId(int id) {
    		this.id = id;
    	}
    
    }
  • AutomakerDAO

    Code Block
    languagejava
    themeConfluence
    public class AutomakerDAO extends JPADAO<Automaker, Integer> {
    
    	public AutomakerDAO() {
    		super(Automaker.class);
    	}
    
    }

Attribute Hinzufügen

  1. Klicken Sie im folgenden Entity-Editor auf Add Attribute, geben Sie bei Name die Bezeichnung company ein. 
  2. Übernehmen Sie bei Type den Datentyp String.
  3. Klicken Sie auf Speichern.

    Image Added
Hinweis:
  • Code-Generierung bei jeder Änderung - Bei jeder Änderung, die Sie im Entity Editor vornehmen, wird sofort der entsprechende Quellcode dazu generiert, überschrieben oder gelöscht.
  • Löschen von Attributen - Die Getter und Setter eines Attributes werden standardmäßig nicht entfernt. Dies ist jedoch empfehlenswert. Klicken Sie deshalb im Hinweis-Dialog auf Yes To All, um auch alle Getter und Setter zu entfernen.
Parameter:
  • Settings
    • Entity caption - Hier lässt sich ein Attribut oder mehrere Attribute festlegen, die später auf der Oberfläche angezeigt werden sollen, z.B. in einer ComboBox. Auch die Angabe von Trennzeichen ist möglich, z.B. {%company}, {%carmodels}, {%price} ergibt zur Laufzeit BMW, 320, 39000.
    • Table name - Name der Datenbank-Tabelle, falls diese sich vom Entity-Namen unterscheidet, insbesondere bei der Verwendung von Leerzeichen oder kryptischen Bezeichnungen für die entsprechende Datenbank-Tabelle, z.B. CMOD anstelle von Carmodel
    • Table catalog - Angabe des Datenbank Catalog, falls vorhanden.
    • Table schema - Angabe des Datenbank Schemas, falls vorhanden.
      Image Added
  • Attributes 
    • Name - Bezeichnung des Attributs.
    • Type - Datentyp des Attributs. Zur Auswahl stehen die von Java unterstützten Datentypen. 
      • Primitive Datentypen - Primitive Datentypen intdoubleboolean beginnen mit Kleinbuchstaben und können nur einzelne Werte speichern. In der Auswahlliste nicht aufgeführte Typen lassen sich über die Tastatur angeben, z.B. float.
      • Datentyp Klassen - Zu jedem primitiven Datentyp gibt es in Java eine entsprechende Wrapper-Klasse. Klassen beginnen in Java mit Großbuchstaben. Es ist empfehlenswert die Typ-Klassen zu verwenden, da primitive Datentypen keinen Null Wert annehmen können, der jedoch in Datenbanken häufig verwendet wird.
    • Caption - Die hier angegebene Bezeichnung erscheint zur Laufzeit auf der Oberfläche, z.B. als Spaltenname in einer Table.
      Image Added
Editor Funktionen:
  • Add Attribute - Legt ein neues Attribut an.
  • Delete - Entfernt das selektierte Attribut. Der entsprechende Javacode wird sofort gelöscht.  
  • Select all - Selektiert alle Attribute.
  • Clear selection - Hebt die Selektierung auf.
  • Invert selection - Kehrt die aktuelle Selektierung um.
  • Show in Source - Wechselt in die Code-Ansicht und markiert den Code des selektierten Attributs.
  • Open Diagram - Öffnet den ER-Diagram Viewer. 
    Image Added
Ergebnis:

Die Klasse Automaker wird um das Attribut company erweitert.

Code Block
languagejava
themeConfluence
private String company;

public String getCompany() {
	return company;
}

public void setCompany(String attribute) {
	this.company = attribute;
}

1:n / n:1 Relation

  1. Wählen Sie im Menü File > New > Entity.  
  2. Geben Sie bei Entity > Name die Bezeichnung Carmodel ein. 

  3. Klicken Sie im folgenden Entity-Editor auf Add Attribute, geben Sie bei Name die Bezeichnung model ein und übernehmen Sie bei Type den Datentyp String.
  4. Klicken Sie im Project Manager bei Entities auf Automaker.java und ziehen Sie dieses Entity per Drag-and-drop in den Entity-Editor.
  5. Wählen Sie im folgenden Dialog die Option Many to One (n:1 - Each Automaker has many Carmodels). 
  6. Übernehmen Sie die Einstellung Bidirectional.
  7. Klicken Sie auf OK.
  8. Klicken Sie auf Speichern.
    Image Added

    Image Added
Ergebnis:
  • Entity Carmodel - Die Klasse Carmodel wird um das Attribut automaker vom Typ Automaker erweitert.

    Code Block
    languagejava
    themeConfluence
    @ManyToOne
    @JoinColumn(name = "automaker_id")
    public Automaker getAutomaker() {
    	return automaker;
    }
    
    public void setAutomaker(Automaker automaker) {
    	this.automaker = automaker;
    }


  • Entity Automaker - Durch die übernommene Einstellung Bidirectional wird gleichzeitig die Klasse Automaker um eine Liste mit allen Carmodels erweitert.
    Image Added

    Code Block
    languagejava
    themeConfluence
    @OneToMany(mappedBy = "automaker")
    public List<Carmodel> getCarmodels() {
    	return carmodels;
    }
    
    public void setCarmodels(List<Carmodel> carmodels) {
    	this.carmodels = carmodels;
    }
    
    public Carmodel addCarmodel(Carmodel carmodel) {
    getCarmodels().add(carmodel);
    carmodel.setAutomaker(this);
    return carmodel;
    }
    
    public Carmodel removeCarmodel(Carmodel carmodel) {
    getCarmodels().remove(carmodel);
    carmodel.setAutomaker(null);
    return carmodel;
    }


Hinweis:
  • Relation im Code per Annotation - Im Code wird die Relation mit Hilfe der Annotationen @ManyToOne, bzw. @OneToMany(mappedBy = "automaker") definiert.
  • Plural - Bei 1:n Relationen wandelt RapidClipse den Namen des Entities auf der n-Seite wegen der besseren Lesbarkeit automatisch in Plural um, z.B. carmodels.

n:m Relation

  1. Legen Sie ein neues Entity Extra an.
    1. Wählen Sie im Menü File > New > Entity.
    2. Geben Sie bei Entity > Name die Bezeichnung Extra an und klicken Sie auf Finish.
    3. Klicken Sie im folgenden Entity-Editor auf Add Attribute, geben Sie bei Name die Bezeichnung extra ein und übernehmen Sie bei Type den Datentyp String.
    4. Klicken Sie auf Speichern.

  2. Legen Sie ein neues Entity Car an.
    1. Wählen Sie im Menü File > New > Entity.

    2. Geben Sie bei Entity > Name die Bezeichnung Car an und klicken Sie auf Finish
  3. Definieren Sie eine n:1 Relation zwischen den Entities Carmodel und Car.
    1. Klicken Sie im Project Manager bei Entities auf Carmodel.java und ziehen Sie dieses Entity per Drag-and-drop in den Entity-Editor.
    2. Wählen Sie im folgenden Dialog die Option Many to One (n:1 - Each Carmodel has many Cars) an. 
    3. Klicken Sie auf Ok.
    4. Klicken Sie auf Speichern.
  4. Fügen Sie mit Add Attribute einige weitere Attribute hinzu:
    1. registration vom Typ Date 
    2. mileage vom Typ Integer
    3. kw vom Typ Integer
    4. price vom Typ Double
  5. Definieren Sie eine n:m Relaion zwischen den Entities Car und Extra
    1. Klicken Sie im Project Manager bei Entities auf Extra.java und ziehen Sie dieses Entity per Drag-and-drop in den Entity-Editor.
    2. Wählen Sie im folgenden Dialog die Option Many to Many (n:m - Each Car has many Extras and each Extra has many Cars).
    3. Übernehmen Sie die Einstellung Bidirectional mit dem vorgeschlagenen Namen für die Join Table, die in der Datenbank für die Abbildung einer n:m Relation benötigt wird.

Tipps:

  • Attribute - Beim Hinzufügen von Attributen wie name, werden in der Entity Klasse neben der Variable name die Get-Methode getName sowie die Set-Methode setName generiert, mit denen auf die Variable name zugegriffen wird. Die Methoden get und set werden als Getter und Setter bezeichnet.

    Code Block
    languagejava
    themeConfluence
    private String name;
    
    // Returns the attribute
    public String getName() {
    	return name;
    }
     
    // Sets the attribute
    public void setName(String attribute) {
    	this.name = attribute;
    }
  • Int oder Integer - Es ist empfehlenswert für die Attribute Ihrer Entities Typ-Klassen wie Integer zu verwenden, da primitive Datentypen wie int keinen Null Wert annehmen können, der jedoch in relationalen Datenbanken häufig verwendet wird.
  • Fehlende Java Datentypen - Für die in den Entities verwendeten Java Datentypen werden beim Generieren der Datenbank automatisch entsprechend geeignete Datenbank Datentypen verwendet. 
  • Änderungen am Quellcode werden erkannt - Der Entity Editor ermöglicht Ihnen bidirektionales Arbeiten. Nach jeder einzelnen Änderungen, die Sie im Entity Editor vornehmen, wird automatisch der Quellcode angepasst. Umgekehrt werden nach Änderungen am Quellcode automatisch der Entity-Editor  aktualisiert.