"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > إتقان Neowith Java: الإعداد، والاستعلامات، والمعاملات، والتصور

إتقان Neowith Java: الإعداد، والاستعلامات، والمعاملات، والتصور

تم النشر بتاريخ 2024-11-07
تصفح:216

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

Neo4j هي ​​قاعدة بيانات رسومية قوية تتفوق في إدارة البيانات المتصلة بشكل كبير. عند دمجه مع Java، فإنه يوفر حلاً قويًا لبناء التطبيقات التي تتطلب نماذج علاقات معقدة. سيرشدك هذا المنشور إلى أساسيات استخدام Neo4j مع Java، ويغطي الإعداد والاستعلام وأفضل الممارسات.

إعداد Neo4j باستخدام Java

للبدء، ستحتاج إلى إضافة برنامج تشغيل Neo4j Java إلى مشروعك. إذا كنت تستخدم Maven، أضف التبعية التالية إلى pom.xml الخاص بك:

org.neo4j.driverneo4j-java-driver5.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.graphstreamgraphstream-core2.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