
Java Stream ORM
Speedment ist ein Open-Source-Java-Stream-ORM-Toolkit und eine Laufzeitumgebung. Das Toolkit analysiert die Metadaten einer vorhandenen SQL-Datenbank und erstellt automatisch eine Java-Darstellung des Datenmodells. Mit diesem leistungsstarken ORM können Sie skalierbare und effiziente Java-Anwendungen mithilfe von Standard-Java -Streams erstellen, ohne SQL eingeben oder eine neue API verwenden zu müssen.
Speedment wurde ursprünglich von Forschern und Ingenieuren mit Sitz in Palo Alto mit dem Ziel entwickelt, die Entwicklung von Java-Datenbankanwendungen durch Nutzung der Java Stream API zu vereinfachen und zu rationalisieren.
Speedment ist unter der geschäftsfreundlichen Apache 2-Lizenz lizenziert. Der Beitrag von Benutzern ist erwünscht. Bitte zögern Sie nicht, neue Funktionen anzufordern, Verbesserungen vorzuschlagen und Fehlerberichte einzureichen. Lesen Sie hier mehr über das Mitwirken.

Schnellstart
Vorausgesetzt, Sie haben Maven installiert und eine relationale Datenbank verfügbar, können Sie Speedment in einer Minute verwenden:
- Starten Sie ein neues Speedment Maven-Projekt
- Stellen Sie eine Verbindung zu Ihrer Datenbank her
SQL als Java Streams ausdrücken
Es besteht eine bemerkenswerte Ähnlichkeit zwischen Java-Streams und SQL, wie in der vereinfachten Tabelle zusammengefasst. Das bedeutet, dass das manuelle Schreiben von SQL-Abfragen nicht mehr erforderlich ist. Sie können in einer reinen Java-Welt bleiben!

Beispiel
Suchen Sie in einer Filmdatenbank nach einem Film mit einer Länge von mehr als 120 Minuten:
// Searches are optimized in the background!
Optional < Film > longFilm = films . stream ()
. filter ( Film . LENGTH . greaterThan ( 120 ))
. findAny ();
Ergibt die folgende SQL-Abfrage:
SELECT
` film_id ` , ` title ` , ` description ` , ` release_year ` ,
` language_id ` , ` original_language_id ` , ` rental_duration ` , ` rental_rate ` ,
` length ` , ` replacement_cost ` , ` rating ` , ` special_features ` ,
` last_update `
FROM
` sakila ` . ` film `
WHERE
( ` length ` > 120 )
Merkmale
Speedment ist mit den unten aufgeführten Funktionen und mehr ausgestattet.
Datenbanktabellen als Standard-Java-Streams anzeigen

- Reines Java – Stream-API anstelle von SQL macht eine Abfragesprache überflüssig
- Dynamische Joins – Möglichkeit, Joins als Java-Streams auf der Anwendungsseite durchzuführen
- Parallele Streams – Arbeitslast kann automatisch auf mehrere Threads aufgeteilt werden
Kurzer und prägnanter sicherer Code

- Codegenerierung – Durch die automatische Java-Darstellung des neuesten Stands Ihrer Datenbank entfällt der Standardcode und die Notwendigkeit, Java-Entitätsklassen manuell zu schreiben, und gleichzeitig wird das Risiko von Fehlern minimiert.
- Nullschutz – Minimiert das mit Datenbank-Nullwerten verbundene Risiko durch Umschließen in Java Optionals
- Enum-Integration – Die Zuordnung von String-Spalten zu Java-Enums erhöht die Speichereffizienz und Typsicherheit

Lazy Evaluation für mehr Leistung
- Streams sind träge – Inhalte aus der Datenbank werden abgerufen, wenn Elemente benötigt und verbraucht werden
- Pipeline-Introspektion – Optimierte Leistung durch Kurzschließen von Stream-Vorgängen
Tutorials
Die Tutorials sind in drei Abschnitte unterteilt. Die Grundlagen werden im ersten Abschnitt behandelt, ohne dass Vorkenntnisse in Speedment vorausgesetzt werden. Dadurch wird eine Wissensgrundlage geschaffen, die erforderlich ist, um die folgenden Tutorials optimal nutzen zu können.
Grundlagen
- Tutorial 1 – Hallo Speedment
- Tutorial 2 – Ein erster Stream von Speedment
Beispielanwendungen
- Tutorial 3 – Speedment Spring Boot-Integration; Seien Sie versichert – es ist einfach
- Tutorial 4 – Speedment-Filter basierend auf Json Web Tokens
- Tutorial 5 – Fehler in einer Datenbank protokollieren
- Tutorial 6 – Speedment mit Java EE verwenden
- Tutorial 7 – Erstellen von Systemen mit Ereignisquellen
- Tutorial 8 – Eigene Erweiterungen schreiben
Geschwindigkeit erweitern
- Tutorial 9 – Formatieren Ihrer Ausgabe als JSON
- Tutorial 10 – Arbeiten mit BLOBS und CLOBS
Ressourcen
- Dokumentation – Lesen Sie das Speedment-Benutzerhandbuch.
- JavaDocs – Neueste Speedment JavaDocs.
- Beispiele – Hier finden Sie 15 detaillierte Beispiele. Weitere finden Sie im oben bereitgestellten Benutzerhandbuch.
- Gitter-Chatroom – Kontaktieren Sie die Speedment-Entwickler und andere Community-Mitglieder über den Gitter-Chatroom.
- Erstellen einer Pull-Anfrage – Pull-Anfragen und Verbesserungsvorschläge aus der Community werden gerne angenommen. Weitere Informationen finden Sie hier.
Anforderungen
Java-Version
Speedment erfordert Java 8
oder höher. Stellen Sie sicher, dass Ihre IDE für die Verwendung von JDK 8 (Version 1.8.0_40 oder neuer) konfiguriert ist.
Datenbankkonnektoren
Speedment Open Source bietet standardmäßig Unterstützung für die folgenden Datenbanken:
- MySQL
- MariaDB
- PostgreSQL
- SQLite
Zu den Konnektoren für Unternehmensdatenbanken gehören:
- AS400
- Kassandra
- DB2
- Informix
- Orakel
- Schneeflocke
- SQL-Server
Weitere Informationen finden Sie unter Speedment-Lizenzierung und -Preise.
Lizenzen
- Speedment Open Source – Diese Website behandelt das Speedment Open Source-Projekt, das unter der Apache 2-Lizenz verfügbar ist.
- Speedment Stream – Die gleichen tollen Funktionen wie Speedment OSS mit Unterstützung für kommerzielle Datenbanken. Erfahren Sie mehr unter speedment.com/stream.
- Speedment HyperStream – Eine Erweiterung von Speedment Stream, die auch Hyperschall-Abfrageleistung umfasst, die durch ein einzigartiges In-JVM-Speicherverwaltungsmodell ermöglicht wird. Erfahren Sie mehr unter speedment.com/hyperStream.
Copyright
Copyright (c) 2014–2019, Speedment, Inc. Alle Rechte vorbehalten. Weitere Informationen finden Sie unter www.speedment.com.
Github-Aktivität visualisiert