国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

Neo4j Cypher - API示例

2018-01-02 16:27 更新

在上一章中,我們已經(jīng)討論了如何使用Neo4j Native Java API開發(fā)和測試Java應用程序。 現(xiàn)在我們將在本章中討論Neo4j Cypher Java API。

在開發(fā)應用程序之前,請參考“Neo4j Java環(huán)境設置”一章來設置Eclipse IDE來開發(fā)此應用程序

如果你觀察到Neo4j Native Java API方法,開發(fā)大型應用程序是非常乏味和麻煩的。 所以為了避免這種復雜性,Neo4j引入了另一組Java API。

此Java API用于直接執(zhí)行Neo4j CQL命令。 它類似于JDBC API直接執(zhí)行SQL命令。


Neo4j Cypher Java API示例

本示例演示如何在Eclipse IDE中開發(fā)Java應用程序,以開發(fā)和測試Neo4j Cypher Java API示例


第1步  創(chuàng)建Java類JavaNeo4jCQLRetrivalTest


創(chuàng)建Java類

現(xiàn)在開始編寫Neo4j Java API編碼以執(zhí)行Neo4j DB操作


第2步 -創(chuàng)建Neo4j數(shù)據(jù)庫

GraphDatabaseFactory dbFactory = new GraphDatabaseFactory();
GraphDatabaseService db= dbFactory.newEmbeddedDatabase("C:/TPNeo4jDB");

它在指定的路徑為我們創(chuàng)建一個Schema / Database,如下所示。這類似于Oracle SQL的“CREATE DATABASE”命令。


創(chuàng)建一個Schema / Database


第3步 -創(chuàng)建Neo4j Cypher執(zhí)行引擎。它用于在Java應用程序中執(zhí)行Neo4j CQL命令。

ExecutionEngine execEngine = new ExecutionEngine(graphDb);


第4步 - 通過使用Neo4j Cypher Execution Engine,執(zhí)行Neo4j CQL Command以檢索CQL MATCH命令的結(jié)果。

ExecutionResult execResult = execEngine.execute
   ("MATCH (java:JAVA) RETURN java");


第5步 -獲取CQL命令結(jié)果的字符串,以在控制臺中打印結(jié)果。

String results = execResult.dumpToString();
System.out.println(results);


第6步 -最終源代碼。

package com.tp.neo4j.java.cql.examples;

import org.neo4j.cypher.javacompat.ExecutionEngine;
import org.neo4j.cypher.javacompat.ExecutionResult;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;

public class JavaNeo4jCQLRetrivalTest {
    
   public static void main(String[] args) {
      GraphDatabaseFactory graphDbFactory = new GraphDatabaseFactory();

      GraphDatabaseService graphDb = graphDbFactory.newEmbeddedDatabase("C:/TPNeo4jDB");

      ExecutionEngine execEngine = new ExecutionEngine(graphDb);
      ExecutionResult execResult = execEngine.execute("MATCH (java:JAVA) RETURN java");
      String results = execResult.dumpToString();
      System.out.println(results);
   }
}

第7步 -在執(zhí)行此Java程序之前,檢查您的Neo4j是否處于關閉模式。 如果沒有,請點擊“停止”按鈕展開它。


檢查Neo4j是否處于關閉模式

第8步 -執(zhí)行Java程序并在Eclipse IDE控制臺中觀察輸出。


執(zhí)行Java程序

選擇我們的Neo4j數(shù)據(jù)庫文件夾,然后單擊“開始”按鈕


Neo4j數(shù)據(jù)庫文件夾


一旦此數(shù)據(jù)庫成功啟動,通過單擊“http:// localhost:7474”鏈接訪問Neo4j瀏覽器來觀察我們的數(shù)據(jù)。


http:// localhost:7474


第9步 -在Neo4j數(shù)據(jù)瀏覽器的$ prompt下輸入以下命令

MATCH (java:JAVA) RETURN java.TutorialID,java.Title,
   java.NoOfChapters,java.Status


MATCH (java:JAVA) RETURN java.TutorialID,java.Title,    java.NoOfChapters,java.Status


在數(shù)據(jù)瀏覽器中查看結(jié)果


觀察Eclipse IDE結(jié)果
如果我們觀察Eclipse IDE結(jié)果和Neo4j數(shù)據(jù)瀏覽器的結(jié)果,兩者都是正確的。


注意 -

像這樣,我們可以使用Neo4j JAVA API執(zhí)行任何CQL命令。

如果我們的Neo4j服務器通過引用我們新創(chuàng)建的數(shù)據(jù)庫啟動和運行,那么我們不能執(zhí)行我們的程序,因為服務器已經(jīng)鎖定了這個數(shù)據(jù)庫。

所以當我們執(zhí)行我們以前的程序時,我們會得到一些錯誤堆棧跟蹤


java.io.IOException: Couldn't lock lock file C:\TPNeo4jDB\lock because another process already holds the lock.


為了避免這個問題,首先停止我們的服務器,然后執(zhí)行程序。

因為默認情況下Neo4j DB Server一次只接受一個鎖。 在實時應用程序中,Ne04J DBA人員將更新數(shù)據(jù)庫屬性以允許一次允許一些數(shù)量的鎖。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號