Neowith Java をマスターする: セットアップ、クエリ、トランザクション、視覚化

WBOY
リリース: 2024-08-28 16:31:29
オリジナル
535 人が閲覧しました

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

Neo4j は、高度に接続されたデータの管理に優れた強力なグラフ データベースです。 Java と組み合わせると、複雑な関係モデリングを必要とするアプリケーションを構築するための堅牢なソリューションが提供されます。この投稿では、Java で Neo4j を使用するための基本を説明し、セットアップ、クエリ、ベスト プラクティスについて説明します。

Java を使用した Neo4j のセットアップ

始めるには、Neo4j Java ドライバーをプロジェクトに追加する必要があります。 Maven を使用している場合は、次の依存関係を pom.xml に追加します:

<dependency>
    <groupId>org.neo4j.driver</groupId>
    <artifactId>neo4j-java-driver</artifactId>
    <version>5.2.0</version>
</dependency>
ログイン後にコピー

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 つのノード (Charlie と Diana) を作成します。

  2. これらのノード間の関係を取得して出力します。

  3. リソースを適切にクリーンアップしてください。

GraphStream を使用したグラフ データの視覚化

グラフ データを視覚化すると、関係をより深く理解できます。 GraphStream ライブラリを使用してデータを視覚化する方法は次のとおりです:

まず、GraphStream を 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();
        }
    }
}

ログイン後にコピー

このコードを実行すると、次のようになります:

  1. コードは、指定されたBoltプロトコルと認証情報を使用してNeo4jデータベースに接続します。

  2. 指定された Cypher クエリに従って、Neo4j データベースからノードと関係が取得されます。

  3. グラフ表現は GraphStream を使用して作成され、取得されたデータに基づいてノードと関係が追加されます。

  4. ビジュアル ウィンドウが開き、グラフが表示され、ノードの構造とその関係を確認できます。

結論

Neo4j と Java を統合すると、グラフ データを管理および分析するための強力なプラットフォームが提供されます。ノードと関係を作成し、データ整合性のためにトランザクションを使用し、データを視覚化することで、Neo4j の機能を活用して洗練されたアプリケーションを構築できます。グラフ データベースの探索を開始して、新しい洞察を引き出し、データ駆動型のソリューションを強化します。

以上がNeowith Java をマスターする: セットアップ、クエリ、トランザクション、視覚化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!