"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Dominando o Neowith Java: configuração, consultas, transações e visualização

Dominando o Neowith Java: configuração, consultas, transações e visualização

Publicado em 2024-11-07
Navegar:603

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

Neo4j é um banco de dados gráfico poderoso que se destaca no gerenciamento de dados altamente conectados. Quando combinado com Java, fornece uma solução robusta para a construção de aplicativos que exigem modelagem de relacionamento complexa. Esta postagem orientará você nos fundamentos do uso do Neo4j com Java, abordando configuração, consulta e práticas recomendadas.

Configurando Neo4j com Java

Para começar, você precisará adicionar o driver Neo4j Java ao seu projeto. Se você estiver usando Maven, adicione a seguinte dependência ao seu pom.xml:

org.neo4j.driverneo4j-java-driver5.2.0

Conectando-se ao Neo4j

Depois de adicionar a dependência, você pode estabelecer uma conexão com seu banco de dados 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()) {

Criando nós e relacionamentos

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

Consultando nós e relacionamentos

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

Usando transações para integridade de dados

As transações garantem que as operações sejam concluídas com sucesso ou revertidas se surgir algum problema. Veja como você pode usar transações com Neo4j e 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());
            }
        }
    }
}

Quando você executa este código, ele irá:

  1. Conecte-se a um banco de dados Neo4j e crie dois nós (Charlie e Diana) com um relacionamento entre eles.

  2. Recupere e imprima o relacionamento entre esses nós.

  3. Garanta a limpeza adequada dos recursos.

Visualizando dados gráficos com GraphStream

A visualização de dados gráficos ajuda a compreender melhor os relacionamentos. Veja como você pode visualizar dados usando a biblioteca GraphStream:

Primeiro, adicione GraphStream ao seu pom.xml:

org.graphstreamgraphstream-core2.0

Código de visualização

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

Quando você executa este código, ele irá:

  1. O código se conecta ao banco de dados Neo4j usando o protocolo Bolt e as credenciais especificadas.

  2. Nós e relacionamentos do banco de dados Neo4j são recuperados de acordo com a consulta Cypher especificada.

  3. Uma representação gráfica é criada usando GraphStream, com nós e relacionamentos adicionados com base nos dados recuperados.

  4. Uma janela visual é aberta exibindo o gráfico, permitindo que você veja a estrutura dos nós e seus relacionamentos.

Conclusão

A integração do Neo4j com Java oferece uma plataforma poderosa para gerenciar e analisar dados gráficos. Ao criar nós e relacionamentos, usar transações para integridade de dados e visualizar dados, você pode aproveitar os recursos do Neo4j para construir aplicativos sofisticados. Comece a explorar bancos de dados gráficos para desbloquear novos insights e aprimorar suas soluções baseadas em dados.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/kanugorajat/mastering-neo4j-with-java-setup-queries-transactions-and-visualization-40j6?1 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3