
ORM de flux Java
Speedment est une boîte à outils et un environnement d'exécution Java Stream ORM open source. La boîte à outils analyse les métadonnées d'une base de données SQL existante et crée automatiquement une représentation Java du modèle de données. Ce puissant ORM vous permet de créer des applications Java évolutives et efficaces à l'aide de flux Java standard sans avoir besoin de taper SQL ni d'utiliser une nouvelle API.
Speedment a été initialement développé par des chercheurs et des ingénieurs basés à Palo Alto dans le but de simplifier et de rationaliser le développement d'applications de base de données Java en tirant parti de l'API Java Stream.
Speedment est sous licence Apache 2, adaptée aux entreprises. La contribution des utilisateurs est encouragée. N'hésitez pas à demander de nouvelles fonctionnalités, à suggérer des améliorations et à déposer des rapports de bogues. En savoir plus sur la contribution ici.

Démarrage rapide
En supposant que Maven soit installé et qu'une base de données relationnelle soit disponible, vous pouvez commencer à utiliser Speedment en une minute :
- Démarrer un nouveau projet Speedment Maven
- Connectez-vous à votre base de données
Exprimer SQL sous forme de flux Java
Il existe une ressemblance remarquable entre les flux Java et SQL, comme le résume le tableau simplifié. Cela signifie qu'il n'est plus nécessaire d'écrire manuellement des requêtes SQL. Vous pouvez rester dans un monde purement Java !

Exemple
Rechercher dans une base de données de films un film d'une durée supérieure à 120 minutes :
// Searches are optimized in the background!
Optional < Film > longFilm = films . stream ()
. filter ( Film . LENGTH . greaterThan ( 120 ))
. findAny ();
Résultats dans la requête SQL suivante :
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 )
Caractéristiques
Speedment est équipé des fonctionnalités répertoriées ci-dessous et plus encore.
Afficher les tables de base de données sous forme de flux Java standard

- Java pur - L'API Stream au lieu de SQL élimine le besoin d'un langage de requête
- Jointures dynamiques - Possibilité d'effectuer des jointures sous forme de flux Java côté application
- Flux parallèles : la charge de travail peut être automatiquement divisée sur plusieurs threads
Code de sécurité de type court et concis

- Génération de code - La représentation Java automatique du dernier état de votre base de données élimine le code passe-partout et le besoin d'écrire manuellement des classes d'entités Java tout en minimisant le risque de bogues.
- Protection nulle : minimise le risque lié aux valeurs nulles de la base de données en les encapsulant dans les options Java.
- Intégration Enum - Le mappage des colonnes String vers Java Enums augmente l'efficacité de la mémoire et la sécurité des types

Évaluation paresseuse pour des performances accrues
- Les flux sont paresseux : le contenu de la base de données est extrait au fur et à mesure que les éléments sont nécessaires et consommés.
- Pipeline Introspection - Performances optimisées par court-circuit des opérations de flux
Tutoriels
Les didacticiels sont divisés en trois sections. Les bases sont couvertes dans la première section sans aucune connaissance préalable attendue de Speedment. Cela constitue une base de connaissances nécessaires pour bénéficier pleinement des didacticiels suivants.
Les bases
- Tutoriel 1 - Bonjour Speedment
- Tutoriel 2 - Un premier stream de Speedment
Exemples d'applications
- Tutoriel 3 - Intégration de Speedment Spring Boot ; RESTEZ assuré - c'est facile
- Tutoriel 4 - Filtres Speedment basés sur les jetons Web Json
- Tutoriel 5 - Consigner les erreurs dans une base de données
- Tutoriel 6 - Utiliser Speedment avec Java EE
- Tutoriel 7 – Créer des systèmes basés sur des événements
- Tutoriel 8 - Écrire vos propres extensions
Extension de la vitesse
- Tutoriel 9 - Formater votre sortie en JSON
- Tutoriel 10 - Travailler avec BLOBS et CLOBS
Ressources
- Documentation - Lisez le guide de l'utilisateur Speedment.
- JavaDocs - Derniers JavaDocs Speedment.
- Exemples - Il y a 15 exemples détaillés ici et d'autres peuvent être trouvés dans le guide de l'utilisateur fourni ci-dessus.
- Gitter Chatroom - Contactez les développeurs Speedment et d'autres membres de la communauté via le chatroom Gitter.
- Création d'une Pull Request - Les demandes de pull et les suggestions d'amélioration de la communauté sont acceptées avec plaisir. Trouvez plus d’informations ici.
Exigences
Version Java
Speedment nécessite Java 8
ou version ultérieure. Assurez-vous que votre IDE est configuré pour utiliser JDK 8 (version 1.8.0_40 ou plus récente).
Connecteurs de base de données
Speedment Open Source prend en charge les bases de données suivantes :
- MySQL
- MariaDB
- PostgreSQL
- SQLite
Les connecteurs de base de données d'entreprise incluent :
- AS400
- Cassandre
- DB2
- Informix
- Oracle
- Flocon de neige
- Serveur SQL
Pour plus d’informations, consultez Licences et tarifs Speedment.
Licences
- Speedment Open Source - Ce site couvre le projet Speedment Open Source disponible sous la licence Apache 2.
- Speedment Stream - Les mêmes fonctionnalités intéressantes que Speedment OSS avec prise en charge des bases de données commerciales. Apprenez-en davantage sur speedment.com/stream.
- Speedment HyperStream - Une extension de Speedment Stream qui inclut également des performances de requêtes hypersoniques activées par un modèle unique de gestion de la mémoire dans la JVM. Apprenez-en davantage sur speedment.com/hyperStream.
Droit d'auteur
Copyright (c) 2014-2019, Speedment, Inc. Tous droits réservés. Visitez www.speedment.com pour plus d’informations.
Activité Github visualisée