«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Освоение Neo с Java: настройка, запросы, транзакции и визуализация

Освоение Neo с Java: настройка, запросы, транзакции и визуализация

Опубликовано 7 ноября 2024 г.
Просматривать:111

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

Neo4j — это мощная графовая база данных, которая превосходно справляется с управлением тесно связанными данными. В сочетании с Java он обеспечивает надежное решение для создания приложений, требующих сложного моделирования отношений. В этом посте вы познакомитесь с основами использования Neo4j с Java, включая настройку, запросы и лучшие практики.

Настройка Neo4j с помощью Java

Чтобы начать, вам необходимо добавить в свой проект Java-драйвер Neo4j. Если вы используете Maven, добавьте в pom.xml следующую зависимость:


    org.neo4j.driver
    neo4j-java-driver
    5.2.0

Подключение к Neo4j

После добавления зависимости вы можете установить соединение с вашей базой данных 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());
            }
        }
    }
}

Использование транзакций для обеспечения целостности данных

Транзакции обеспечивают успешное завершение операций или откат в случае возникновения каких-либо проблем. Вот как вы можете использовать транзакции с Neo4j и 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());
            }
        }
    }
}

Когда вы запустите этот код, он:

  1. Подключитесь к базе данных Neo4j и создайте два узла (Чарли и Диана) со связью между ними.

  2. Получите и распечатайте отношения между этими узлами.

  3. Обеспечите правильную очистку ресурсов.

Визуализация данных графика с помощью GraphStream

Визуализация графических данных помогает лучше понять взаимосвязи. Вот как вы можете визуализировать данные с помощью библиотеки GraphStream:

Сначала добавьте GraphStream в ваш 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();
        }
    }
}

Когда вы запустите этот код, он:

  1. Код подключается к базе данных Neo4j, используя указанный протокол Bolt и учетные данные.

  2. Узлы и связи из базы данных Neo4j извлекаются в соответствии с указанным запросом Cypher.

  3. Представление графа создается с помощью GraphStream с добавлением узлов и связей на основе полученных данных.

  4. Откроется визуальное окно с графиком, позволяющее увидеть структуру узлов и их взаимосвязи.

Заключение

Интеграция Neo4j с Java предлагает мощную платформу для управления и анализа графических данных. Создавая узлы и связи, используя транзакции для обеспечения целостности данных и визуализируя данные, вы можете использовать возможности Neo4j для создания сложных приложений. Начните изучать графовые базы данных, чтобы получить новую информацию и усовершенствовать свои решения на основе данных.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/kanugorajat/mastering-neo4j-with-java-setup-queries-transactions-and-visualization-40j6?1. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected]. удалить его
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3