Rumah  >  Artikel  >  Java  >  Menguasai Neowith Java: Persediaan, Pertanyaan, Transaksi dan Visualisasi

Menguasai Neowith Java: Persediaan, Pertanyaan, Transaksi dan Visualisasi

WBOY
WBOYasal
2024-08-28 16:31:29538semak imbas

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

Neo4j ialah pangkalan data graf berkuasa yang cemerlang dalam mengurus data yang sangat bersambung. Apabila digabungkan dengan Java, ia menyediakan penyelesaian yang mantap untuk membina aplikasi yang memerlukan pemodelan hubungan yang kompleks. Siaran ini akan membimbing anda melalui asas penggunaan Neo4j dengan Java, meliputi persediaan, pertanyaan dan amalan terbaik.

Menyediakan Neo4j dengan Java

Untuk bermula, anda perlu menambahkan pemacu Java Neo4j pada projek anda. Jika anda menggunakan Maven, tambahkan kebergantungan berikut pada pom.xml anda:

<dependency>
    <groupId>org.neo4j.driver</groupId>
    <artifactId>neo4j-java-driver</artifactId>
    <version>5.2.0</version>
</dependency>

Menyambung ke Neo4j

Setelah anda menambahkan kebergantungan, anda boleh mewujudkan sambungan ke pangkalan data Neo4j anda:

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()) {

Mencipta Nod dan Perhubungan

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

Menyiasat Nod dan Perhubungan

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

Menggunakan Transaksi untuk Integriti Data

Urus niaga memastikan operasi berjaya diselesaikan atau ditarik balik jika timbul sebarang isu. Begini cara anda boleh menggunakan transaksi dengan Neo4j dan 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());
            }
        }
    }
}

Apabila anda menjalankan kod ini, ia akan:

  1. Sambung ke pangkalan data Neo4j dan buat dua nod (Charlie dan Diana) dengan hubungan antara mereka.

  2. Dapatkan dan cetak perhubungan antara nod ini.

  3. Pastikan pembersihan sumber yang betul.

Memvisualisasikan Data Graf dengan GraphStream

Memvisualisasikan data graf membantu dalam memahami perhubungan dengan lebih baik. Begini cara anda boleh menggambarkan data menggunakan pustaka GraphStream:

Pertama, tambahkan GraphStream pada pom.xml anda:

<dependency>
    <groupId>org.graphstream</groupId>
    <artifactId>graphstream-core</artifactId>
    <version>2.0</version>
</dependency>

Kod Visualisasi

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

Apabila anda menjalankan kod ini, ia akan:

  1. Kod bersambung ke pangkalan data Neo4j menggunakan protokol dan bukti kelayakan Bolt yang ditentukan.

  2. Nod dan perhubungan daripada pangkalan data Neo4j diambil mengikut pertanyaan Cypher yang ditentukan.

  3. Perwakilan graf dibuat menggunakan GraphStream, dengan nod dan perhubungan ditambah berdasarkan data yang diambil.

  4. Tetingkap visual dibuka memaparkan graf, membolehkan anda melihat struktur nod dan perhubungannya.

Kesimpulan

Mengintegrasikan Neo4j dengan Java menawarkan platform yang berkuasa untuk mengurus dan menganalisis data graf. Dengan mencipta nod dan perhubungan, menggunakan transaksi untuk integriti data dan menggambarkan data, anda boleh memanfaatkan keupayaan Neo4j untuk membina aplikasi yang canggih. Mula meneroka pangkalan data graf untuk membuka kunci cerapan baharu dan mempertingkatkan penyelesaian terdorong data anda.

Atas ialah kandungan terperinci Menguasai Neowith Java: Persediaan, Pertanyaan, Transaksi dan Visualisasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn