Neo4j est une puissante base de données de graphiques qui excelle dans la gestion de données hautement connectées. Lorsqu'il est combiné avec Java, il fournit une solution robuste pour créer des applications nécessitant une modélisation de relations complexes. Cet article vous expliquera les bases de l'utilisation de Neo4j avec Java, couvrant la configuration, les requêtes et les meilleures pratiques.
Pour commencer, vous devrez ajouter le pilote Java Neo4j à votre projet. Si vous utilisez Maven, ajoutez la dépendance suivante à votre pom.xml :
org.neo4j.driver neo4j-java-driver 5.2.0
Une fois la dépendance ajoutée, vous pouvez établir une connexion à votre base de données Neo4j :
import org.neo4j.driver.*; public class Neo4jBasicExample { public static void main(String[] args) { try (Driver driver = GraphDatabase.driver("bolt://localhost:7687", AuthTokens.basic("neo4j", "your_password")); Session session = driver.session()) {
// Create nodes and a relationship String createQuery = "CREATE (a:Person {name: 'Alice'})-[:FRIENDS_WITH]->(b:Person {name: 'Bob'})"; session.run(createQuery); System.out.println("Nodes and relationship created successfully."); } } }
import org.neo4j.driver.*; public class Neo4jQueryExample { public static void main(String[] args) { try (Driver driver = GraphDatabase.driver("bolt://localhost:7687", AuthTokens.basic("neo4j", "your_password")); Session session = driver.session()) { // Query nodes and relationships String matchQuery = "MATCH (a:Person)-[r:FRIENDS_WITH]->(b:Person) RETURN a.name, b.name"; Result result = session.run(matchQuery); // Process the results while (result.hasNext()) { Record record = result.next(); System.out.println(record.get("a.name").asString() " is friends with " record.get("b.name").asString()); } } } }
Les transactions garantissent que les opérations sont terminées avec succès ou annulées en cas de problème. Voici comment utiliser les transactions avec Neo4j et Java :
import org.neo4j.driver.*; public class Neo4jTransactionExample { public static void main(String[] args) { try (Driver driver = GraphDatabase.driver("bolt://localhost:7687",AuthTokens.basic("neo4j", "your_password")); Session session = driver.session()) { // Start a transaction session.writeTransaction(tx -> { tx.run("CREATE (a:Person {name: 'Charlie'})-[:FRIENDS_WITH]->(b:Person {name: 'Diana'})"); return null; }); // Verify the data String matchQuery = "MATCH (a:Person)-[r:FRIENDS_WITH]->(b:Person) RETURN a.name, b.name"; Result result = session.run(matchQuery); // Process the results while (result.hasNext()) { Record record = result.next(); System.out.println(record.get("a.name").asString() " is friends with " record.get("b.name").asString()); } } } }
Lorsque vous exécutez ce code, il :
Connectez-vous à une base de données Neo4j et créez deux nœuds (Charlie et Diana) avec une relation entre eux.
Récupérez et imprimez la relation entre ces nœuds.
Assurer un nettoyage approprié des ressources.
La visualisation des données graphiques aide à mieux comprendre les relations. Voici comment visualiser les données à l'aide de la bibliothèque GraphStream :
Tout d'abord, ajoutez GraphStream à votre pom.xml :
org.graphstream graphstream-core 2.0
import org.graphstream.graph.*; import org.graphstream.graph.implementations.SingleGraph; import org.neo4j.driver.*; public class Neo4jGraphVisualization { public static void main(String[] args) { // Initialize Neo4j driver try (Driver driver = GraphDatabase.driver("bolt://localhost:7687", AuthTokens.basic("neo4j", "your_password")); Session session = driver.session()) { // Fetch nodes and relationships String cypherQuery = "MATCH (a)-[r]->(b) RETURN a, r, b"; Result result = session.run(cypherQuery); // Create a graph instance Graph graph = new SingleGraph("Neo4j Graph"); // Process results and add to graph while (result.hasNext()) { Record record = result.next(); Node nodeA = record.get("a").asNode(); Node nodeB = record.get("b").asNode(); Relationship relationship = record.get("r").asRelationship(); graph.addNode(nodeA.id()).setAttribute("label", nodeA.get("name").asString()); graph.addNode(nodeB.id()).setAttribute("label", nodeB.get("name").asString()); graph.addEdge(relationship.id(), nodeA.id(), nodeB.id()).setAttribute("label", relationship.type()); } // Display the graph graph.display(); } } }
Lorsque vous exécutez ce code, il :
Le code se connecte à la base de données Neo4j à l'aide du protocole Bolt et des informations d'identification spécifiés.
Les nœuds et les relations de la base de données Neo4j sont récupérés selon la requête Cypher spécifiée.
Une représentation graphique est créée à l'aide de GraphStream, avec des nœuds et des relations ajoutés en fonction des données récupérées.
Une fenêtre visuelle s'ouvre affichant le graphique, vous permettant de voir la structure des nœuds et leurs relations.
L'intégration de Neo4j à Java offre une plate-forme puissante pour gérer et analyser les données graphiques. En créant des nœuds et des relations, en utilisant des transactions pour l'intégrité des données et en visualisant les données, vous pouvez tirer parti des capacités de Neo4j pour créer des applications sophistiquées. Commencez à explorer les bases de données graphiques pour débloquer de nouvelles informations et améliorer vos solutions basées sur les données.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3