「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Neowith Java をマスターする: セットアップ、クエリ、トランザクション、視覚化

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

2024 年 11 月 7 日に公開
ブラウズ:224

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

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

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

まず、Neo4j Java ドライバーをプロジェクトに追加する必要があります。 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 つのノード (Charlie と Diana) を作成します。

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

  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