Maison  >  Article  >  Java  >  Maîtriser Neowith Java : configuration, requêtes, transactions et visualisation

Maîtriser Neowith Java : configuration, requêtes, transactions et visualisation

WBOY
WBOYoriginal
2024-08-28 16:31:29572parcourir

Mastering Neowith Java: Setup, Queries, Transactions, and Visualization

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.

Configurer Neo4j avec Java

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>

Connexion à Neo4j

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()) {

Création de nœuds et de relations

// 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.");
        }
    }
}

Interrogation des nœuds et des relations

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());
            }
        }
    }
}

Utiliser les transactions pour l'intégrité des données

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 :

  1. Connectez-vous à une base de données Neo4j et créez deux nœuds (Charlie et Diana) avec une relation entre eux.

  2. Récupérez et imprimez la relation entre ces nœuds.

  3. Assurer un bon nettoyage des ressources.

Visualisation des données graphiques avec GraphStream

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>

Code de visualisation

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 :

  1. Le code se connecte à la base de données Neo4j en utilisant le protocole Bolt et les informations d'identification spécifiés.

  2. 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.

  3. 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.

  4. Une fenêtre visuelle s'ouvre affichant le graphique, vous permettant de voir la structure des nœuds et leurs relations.

Conclusion

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn