Neo4j هي قاعدة بيانات رسومية قوية تتفوق في إدارة البيانات المتصلة بشكل كبير. عند دمجه مع Java، فإنه يوفر حلاً قويًا لبناء التطبيقات التي تتطلب نماذج علاقات معقدة. سيرشدك هذا المنشور إلى أساسيات استخدام Neo4j مع Java، ويغطي الإعداد والاستعلام وأفضل الممارسات.
للبدء، ستحتاج إلى إضافة برنامج تشغيل Neo4j Java إلى مشروعك. إذا كنت تستخدم Maven، أضف التبعية التالية إلى pom.xml الخاص بك:
org.neo4j.driver neo4j-java-driver 5.2.0
بمجرد إضافة التبعية، يمكنك إنشاء اتصال بقاعدة بيانات 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 وإنشاء عقدتين (تشارلي وديانا) مع وجود علاقة بينهما.
استرجاع وطباعة العلاقة بين هذه العقد.
ضمان التنظيف السليم للموارد.
يساعد تصور بيانات الرسم البياني في فهم العلاقات بشكل أفضل. إليك كيفية تصور البيانات باستخدام مكتبة 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(); } } }
عند تشغيل هذا الكود، سوف:
يتصل الرمز بقاعدة بيانات Neo4j باستخدام بروتوكول Bolt المحدد وبيانات الاعتماد.
يتم استرداد العقد والعلاقات من قاعدة بيانات Neo4j وفقًا لاستعلام Cypher المحدد.
يتم إنشاء تمثيل بياني باستخدام GraphStream، مع إضافة العقد والعلاقات بناءً على البيانات المستردة.
تفتح نافذة مرئية تعرض الرسم البياني، مما يسمح لك برؤية بنية العقد وعلاقاتها.
يوفر دمج Neo4j مع Java منصة قوية لإدارة وتحليل بيانات الرسم البياني. من خلال إنشاء العقد والعلاقات، واستخدام المعاملات لتكامل البيانات، وتصور البيانات، يمكنك الاستفادة من قدرات Neo4j لبناء تطبيقات متطورة. ابدأ في استكشاف قواعد بيانات الرسوم البيانية لفتح رؤى جديدة وتحسين الحلول المستندة إلى البيانات.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3