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 :
<dependency> <groupId>org.neo4j.driver</groupId> <artifactId>neo4j-java-driver</artifactId> <version>5.2.0</version> </dependency>
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 bon nettoyage 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 :
<dependency> <groupId>org.graphstream</groupId> <artifactId>graphstream-core</artifactId> <version>2.0</version> </dependency>
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 en utilisant le protocole Bolt et les 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.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!