In diesem Artikel erfahren Sie, wie Sie mit Speedment eine vollstĂ€ndige CRUD REST-API fĂŒr eine Datenbank erstellen.

Es wird von Jahr zu Jahr deutlicher, dass das Spring Framework eines der am hĂ€ufigsten verwendeten Java-Frameworks fĂŒr die Webentwicklung ist.
WĂ€hrend sich das nĂ€chste Jahrzehnt nĂ€hert, hat das populĂ€rste Modul von Spring, Spring Boot, gerade ein umfangreiches Update erhalten. Die neuen Versionen von Spring Boot "2.2.0" und 2020 sind nahezu perfekt aufeinander abgestimmt. Aus diesem Grund hat das Speedment-Entwicklungsteam die LĂŒcke geschlossen, indem es das Spring Boot-Plugin aktualisiert hat.
Wenn Sie zum ersten Mal von Speedment hören, werden Sie begeistert sein, wenn wir Ihnen zeigen, wie Entwickler mit dem Spring Boot Speedment-Plugin mĂŒhelos Spring-Datenbankanwendungen mit Speedment, ORM und einer leistungsstarken Stream API-basierten AbfrageoberflĂ€che erstellen können.
Ăber Speedment
Speedment kann als das ORM bezeichnet werden, das die Java-Community verdient - ein Toolkit fĂŒr diejenigen, die eine schnelle Entwicklung und noch schnellere Anwendungen lieben.
Durch die Verwendung der Java Stream-API als primĂ€res Kommunikationsmittel mit der ausgewĂ€hlten Datenbank können Entwickler mit Java-Erfahrung sich bei Speedment wie zu Hause fĂŒhlen. Neben der benutzerfreundlichen API bietet Speedment Entwicklern ein grafisches Tool, mit dem sie in Sekundenschnelle ein Domain-Modell erstellen können.
Wenn Sie sich fĂŒr Speedment als Ganzes interessieren, klicken Sie auf den folgenden Link, um eine
detaillierte Dokumentation mit Beispielen zu erhalten . Der Rest dieses Artikels befasst sich mit dem Spring Boot Plugin.
Spring Boot: Schnellster Start
Das Speedment Spring Boot-Plugin gibt es schon seit einiger Zeit, aber Speedment 3.2.2 hat die Hauptfunktion eingefĂŒhrt - die FĂ€higkeit, die gesamte CRUD REST-API direkt aus Ihrem Datenbankmodell zu generieren.
AbhÀngig davon, ob Sie von vorne beginnen oder bereits ein Projekt haben, sind die Schritte unterschiedlich. Stellen Sie jedoch sicher, dass der Integrationsprozess unabhÀngig vom Status Ihres Projekts einfach ist.
Wenn Sie Spring Boot in ein vorhandenes Speedment-Projekt integrieren möchten, mĂŒssen Sie Ihrer
pom.xml die folgenden 2 Elemente hinzufĂŒgen:
<plugin> <groupId>com.speedment.enterprise</groupId> <artifactId>speedment-enterprise-maven-plugin</artifactId> <version>${speedment.version}</version> <configuration> <components> component>com.speedment.enterprise.plugins.spring.SpringGeneratorBundle</component> </components> <appName>${project.artifactId}</appName> <packageName>${project.groupId}</packageName> </configuration> ... // Database connector dependency </plugin> <dependencies> ... <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.2.1.RELEASE</version> </dependency> <dependency> <groupId>com.speedment.enterprise.plugins</groupId> <artifactId>spring-runtime</artifactId> <version>${speedment.version}</version> </dependency> ... </dependencies>
Nach dem HinzufĂŒgen dieser Elemente bei der nĂ€chsten Regeneration Ihres Domain-Modells sollte eine springspezifische Konfiguration generiert werden. Die generierte Konfiguration steuert die Datenbankverbindung und die Bin-Registrierungseigenschaften fĂŒr die verschiedenen von Speedment generierten Manager.
Wenn Sie das Projekt von Grund auf neu starten, rufen Sie den
Projektinitialisierer auf , in dem ein vorgefertigtes Projekt fĂŒr Spring Boot fĂŒr Sie erstellt wird. Wie Sie das Projekt konfigurieren, bleibt Ihnen ĂŒberlassen. Wenn Sie jedoch das Spring Boot-Plugin in das generierte Projekt einbeziehen möchten, stellen Sie sicher, dass das KontrollkĂ€stchen neben Spring im Abschnitt Plugins aktiviert ist. Wenn die Projektkonfiguration Ihren Vorstellungen entspricht, klicken Sie auf die SchaltflĂ€che
Herunterladen , und Sie erhalten ein Projektarchiv, das zur Verwendung bereitsteht.

CRUD vereinfacht
Sobald Sie das Plugin installiert haben, stehen im Speedment-Tool einige spezifische Spring Boot-Optionen zur VerfĂŒgung, mit denen Sie Ihre REST-API konfigurieren können. Sie können das Tool Speedment ausfĂŒhren, indem Sie den folgenden Befehl ausfĂŒhren:
mvn speedment:tool
Wenn Sie Speedment zum ersten Mal verwenden, sollten Sie sich anhand des kurzen
Tutorials zu Hello Speedment mit dem Workflow vertraut
machen .
StandardmĂ€Ăig generiert das Speedment-Tool keine REST-API. Um eine CRUD-REST-API fĂŒr eine bestimmte Tabelle zu generieren, wĂ€hlen Sie die Tabelle in der Baumansicht aus und
aktivieren Sie das KontrollkÀstchen "
Generate @RestController " (
@RestController generieren) zusammen mit der Option "
REST Enable Create / Update / Delete " (
REST aktivieren, erstellen / aktualisieren / löschen ). Wenn Sie auf
Generieren klicken, wird eine Reihe von REST-Zuordnungen erstellt - URLs, die CRUD-Operationen fĂŒr eine bestimmte Tabelle implementieren.

Das ist alles! Eine manuelle Kodierung ist nicht erforderlich. FĂŒhren Sie einfach das generierte Spring-Projekt aus, indem Sie den folgenden Befehl ausfĂŒhren:
mvn spring-boot:run
EntitÀten mit REST erstellen
Um eine neue EntitĂ€t mit der von Ihnen erstellten REST-API zu erstellen, mĂŒssen Sie eine POST-Anforderung unter dem im Tool angegebenen Pfad ausfĂŒhren. StandardmĂ€Ăig stimmt der Name dieses Pfads mit dem Namen Ihrer Tabelle und dem PrĂ€fix Ihres Schemanamens ĂŒberein. Wenn Sie das KontrollkĂ€stchen "
REST-Endpunkt " deaktivieren, können Sie einen beliebigen Pfadnamen angeben. Der Anforderungshauptteil muss SchlĂŒssel-Wert-Paare im JSON-Objekt enthalten, wobei die "
REST Field Name " -Werte aus dem Speedment-Tool SchlĂŒssel sind.
Wenn wir beispielsweise eine Tabelle mit dem Namen
person mit den Spalten
id ,
name und
age haben , senden wir die folgende Abfrage, um eine neue EntitÀtsperson zu erstellen:
POST localhost:8080/db/person { "id": 1, "name": "Jane", "age": 25 }
oder
curl -d '{"id": 1,"name": "Jane","age": 25}' -H "Content-Type:application/json" -X POST localhost:8080/db/person
Wenn der Wert der
ID- Spalte automatisch generiert wird (oder eine Sequenz verwendet), können Sie ihn aus dem POST-Body ausschlieĂen. Wenn Sie eine bestimmte Spalte zwangsweise aus dem POST-Body ausschlieĂen möchten, klicken Sie in der Tool-Strukturansicht auf die entsprechende Spalte, deaktivieren Sie das KontrollkĂ€stchen "
In Body einbeziehen" und erstellen Sie Ihr Domain-Modell neu. Wenn Sie andererseits sicherstellen möchten, dass beim AusfĂŒhren der Anforderung eine bestimmte Spalte im POST-Hauptteil vorhanden ist, aktivieren Sie âErforderlich in Hauptteil erstellenâ und erstellen Sie Ihr DomĂ€nenmodell neu.

EntitÀten mit REST abrufen
Um unsere neu erstellte EntitĂ€t zu erhalten, mĂŒssen wir eine GET-Anforderung auf die gleiche Weise ausfĂŒhren, die zum Erstellen der EntitĂ€t verwendet wurde:
GET localhost:8080/db/person
oder
curl localhost:8080/db/person/1
Eine abgeschlossene Anforderung gibt ein JSON-Array aller vorhandenen EntitĂ€ten zurĂŒck. In unserem Fall wĂŒrde es ein Array nur mit unserer einzigen EntitĂ€t zurĂŒckgeben:
[ { "id": 1, "name": "Jane", "age": 25 } ]
Erweiterte Konzepte wie Filter und Sortierer werden in der offiziellen Dokumentation von Speedment beschrieben.
Aktualisieren vorhandener EntitÀten mithilfe von REST
Das Aktualisieren einer vorhandenen EntitĂ€t mithilfe der REST-API Ă€hnelt dem Erstellen einer EntitĂ€t. Anstelle einer POST-Anforderung fĂŒhren wir eine PATCH-Anforderung aus, und der Pfad wird mit einer EntitĂ€tskennung erweitert. Welche ID unserer EntitĂ€t von der PrimĂ€rschlĂŒsselspalte dieser Tabelle abhĂ€ngt. Da unsere PK-Spalte (PrimĂ€rschlĂŒssel) ein numerischer Typ ist, ist unsere EntitĂ€tskennung eine Ganzzahl.
Um die EntitĂ€t zu aktualisieren, die wir in unserem vorherigen Beispiel erstellt haben, fĂŒhren wir die folgende Abfrage aus:
PATCH localhost:8080/db/person/1 { "name": "Mike", "age": 43 }
oder
curl -d '{"name": "Jane","age": 25}' -H "Content-Type:application/json" -X PATCH localhost:8080/db/person/1
StandardmĂ€Ăig sind alle Spalten im PATCH-Hauptteil enthalten (mit Ausnahme der PrimĂ€rschlĂŒsselspalte), sie sind jedoch nicht erforderlich. Wenn Sie eine bestimmte Spalte zwangsweise aus dem Anforderungshauptteil ausschlieĂen möchten, klicken Sie in der Werkzeugstrukturansicht auf die entsprechende Spalte, deaktivieren Sie das KontrollkĂ€stchen "
In Aktualisierungshauptteil einbeziehen" und erstellen Sie Ihr DomÀnenmodell neu. Wenn Sie andererseits sicherstellen möchten, dass eine Spalte im Anforderungshauptteil vorhanden ist, aktivieren Sie "
Erforderlich im Aktualisierungshauptteil " und aktualisieren Sie Ihr DomÀnenmodell.
EntitÀten mit REST entfernen
Das Entfernen einer EntitĂ€t mithilfe der REST-API ist recht einfach. Wir fĂŒhren eine DELETE-Anforderung auf die gleiche Weise aus, die zum Aktualisieren von EntitĂ€ten verwendet wird.
Um die EntitĂ€t zu entfernen, die wir in den vorherigen Beispielen erstellt und aktualisiert haben, fĂŒhren Sie die folgende Abfrage aus:
DELETE localhost:8080/db/person/1
oder
curl -X DELETE localhost:8080/db/person/1
Zusammenfassung
Das Starten neuer Projekte kann manchmal schwierig sein. Als Entwickler möchten wir diese Unannehmlichkeiten so weit wie möglich vermeiden und direkt in die Programmierung eintauchen. Mit dem neuen Speed ââBoot Spring Boot-Plugin können Entwickler den Start neuer Projekte beschleunigen, indem sie automatisch alle erforderlichen Konfigurationen und REST-Controller direkt aus der Datenbank generieren.
Wir hoffen, Ihnen hat dieser kurze Leitfaden zu den neuen CRUD-Funktionen gefallen, die das Speedment Spring Boot-Plugin bietet. Wenn Sie an einer detaillierteren ErlÀuterung der neuen Funktionen interessiert sind, lesen Sie die
offizielle Dokumentation , in der Sie detaillierte ErklĂ€rungen und Beispiele fĂŒr neue CRUD-Funktionen finden.
ZusĂ€tzliche LektĂŒre
Erstellen einer REST-API Teil 4: Behandeln von POST-, PUT- und DELETE-AnforderungenErstellen einer grundlegenden CRUD RESTful Spring-Boot-MVC-Anwendung: Erste Schritte mit Java Spring