Kursinhalt
Java-Datenmanipulation mit Hibernate
Java-Datenmanipulation mit Hibernate
`update`-Operation für Mitarbeiter und Abteilung
Mitarbeiteraktualisierung
Lassen Sie uns die letzten Feinheiten an der Grundlage unseres Projekts hinzufügen, und jetzt müssen wir das implementieren, was Sie bereits im vorherigen Kapitel für die Role
-Entität implementiert haben. Unsere Aufgabe ist es nun, die gleiche Funktionalität für die Employee
-Entität zu implementieren. Wir sind an 2 Methoden interessiert:
- Vollständige
employee
-Aktualisierung; - Aktualisierung des
salary
eines Mitarbeiters; - Aktualisierungen von Rolle und Abteilung sind bereits implementiert.
Lassen Sie uns mit dem ersten Punkt beginnen. Wenn Sie die vorherige Aufgabe erfolgreich abgeschlossen haben, sollte es für Sie kein Problem sein, zu verstehen, wie dies funktioniert.
Wir weisen alle Felder der Entitäten mit den aktualisierten Feldern neu zu.
So sieht es im Code aus:
Wie Sie sehen können, gibt es nichts Kompliziertes daran. Wir weisen einfach alle alten Mitarbeiterfelder den neuen Feldern zu. Auf diese Weise aktualisieren wir die Informationen des Mitarbeiters in der Datenbank.
Kommen wir nun zum nächsten Punkt, bei dem wir das Gehalt dieses Mitarbeiters aktualisieren müssen.
Wir haben mehrere Möglichkeiten, das Gehalt zu ändern:
- Das Gehalt um einen bestimmten Betrag erhöhen;
- Das Gehalt um einen bestimmten Betrag verringern;
- Das Gehalt um einen bestimmten Prozentsatz erhöhen;
- Das Gehalt um einen bestimmten Prozentsatz verringern.
Wie Sie sehen können, gibt es viele Optionen, aber sie alle haben dasselbe Ziel. Daher wäre eine gute Lösung, diese Methode zu überladen. Dies wird eine Möglichkeit sein, Polymorphismus in der OOP einzuhalten.
Hinweis
Es gibt auch die Möglichkeit, nur eine Methode zu schreiben, in die wir ein spezifisches
enum
übergeben, um zu bestimmen, welche Methode verwendet werden soll. Diese Praxis ist jedoch in der Java-Entwicklung unüblich, da sie nicht vollständig den OOP-Prinzipien entspricht. Sie können versuchen, dies selbst zu implementieren, aber wir werden Polymorphismus verwenden.
Lassen Sie uns also Methoden für den ersten und zweiten Punkt schreiben:
In diesem Code gibt es ebenfalls nichts Kompliziertes. Wir rufen das salary
des Mitarbeiters ab und ändern es, dann aktualisieren wir den Mitarbeiter in der Datenbank mit der Methode session.merge()
.
Hier habe ich einfache Addition und eine Erhöhung um einen Prozentsatz verwendet.
Lassen Sie uns ähnliche Methoden implementieren, diesmal jedoch zum Verringern des Gehalts. Vielleicht zeigt der Mitarbeiter schlechte Leistungen, und wir müssen ihn bestrafen.
Die Implementierung der Methoden wird fast identisch sein; wir müssen nur das Pluszeichen durch ein Minuszeichen ersetzen.
So wird es im Code aussehen:
Der einzige Unterschied, den wir neben der Änderung des Vorzeichens vorgenommen haben, ist das Hinzufügen einer Überprüfung, um sicherzustellen, dass der Betrag nicht negativ wird. Andernfalls wäre es zu hart für den Mitarbeiter.
Aber Sie haben vielleicht bemerkt, dass diese Methoden einige Operationen ausführen. Daher müssen wir sie in die Service-Schicht verschieben. In der DAO-Schicht sollte nur eine Aktualisierungsmethode verbleiben. Es ist nicht schwierig, dies zu tun.
So sieht die Implementierung in der Service-Schicht aus:
Nun, lassen Sie uns die Funktionalität dieser Methoden in der Main
-Klasse testen, um sicherzustellen, dass alles funktioniert:
Großartig, wir haben Bob
erfolgreich durch einige Herausforderungen geführt. Im nächsten Kapitel wird es Ihre Aufgabe sein, ähnliche Methoden für die Department
-Entität zu implementieren.
Danke für Ihr Feedback!