Neo4j は、高度に接続されたデータの管理に優れた強力なグラフ データベースです。 Java と組み合わせると、複雑な関係モデリングを必要とするアプリケーションを構築するための堅牢なソリューションが提供されます。この投稿では、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 データベースへの接続を確立できます。
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()); } } } }
このコードを実行すると、次のようになります:
Neo4j データベースに接続し、それらの間の関係を持つ 2 つのノード (Charlie と Diana) を作成します。
これらのノード間の関係を取得して出力します。
リソースを適切にクリーンアップしてください。
グラフ データを視覚化すると、関係をより深く理解できます。 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(); } } }
このコードを実行すると、次のようになります:
コードは、指定されたBoltプロトコルと認証情報を使用してNeo4jデータベースに接続します。
指定された Cypher クエリに従って、Neo4j データベースからノードと関係が取得されます。
グラフ表現は GraphStream を使用して作成され、取得されたデータに基づいてノードと関係が追加されます。
ビジュアル ウィンドウが開き、グラフが表示され、ノードの構造とその関係を確認できます。
Neo4j と Java を統合すると、グラフ データを管理および分析するための強力なプラットフォームが提供されます。ノードと関係を作成し、データ整合性のためにトランザクションを使用し、データを視覚化することで、Neo4j の機能を活用して洗練されたアプリケーションを構築できます。グラフ データベースの探索を開始して、新しい洞察を引き出し、データ駆動型のソリューションを強化します。
以上がNeowith Java をマスターする: セットアップ、クエリ、トランザクション、視覚化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。