2016-03-01 84 views
-1

我很困惑如何從java連接遠程neo4j服務器。我可以直接使用neo4j api嗎,我必須使用REST API嗎?如何從java應用程序與neo4j服務器進行通信?

比方說,我的服務器在運行270.270.270.270,我會想:

cn = connect(270.270.270.270) 
results = cn.runSomeQuery //(with Cypher or... can I call a plugin or unmanaged extension?) 
return results 

回答

1

是的,核心Java API和REST HTTP API之間的二分法並不總是很容易掌握。開始也許有:http://neo4j.com/developer/java/

在JVM中使用Neo4j有兩種方法。獨立的Neo4j 服務器可以在任何機器上安裝,然後通過它的HTTP API來訪問。(...)

但你也可以運行的Neo4j嵌入在JVM進程中,很像 HSQL或Derby。

除非您100%確定只需要一個嵌入式數據庫,否則您可以在http://neo4j.com/docs/stable/server-java-rest-client-example.html中查看使用Java中的REST API的示例。

final String txUri = SERVER_ROOT_URI + "transaction/commit"; 
WebResource resource = Client.create().resource(txUri); 

String payload = "{\"statements\" : [ {\"statement\" : \"" +query + "\"} ]}"; 
ClientResponse response = resource 
     .accept(MediaType.APPLICATION_JSON) 
     .type(MediaType.APPLICATION_JSON) 
     .entity(payload) 
     .post(ClientResponse.class); 
0

我使用類似這樣的東西。我使用我創建的方法創建了一個連接,然後使用getHalt()等另一種方法運行查詢。我想這很簡單。

public class DbNeo { 
    static Session ses; 
    static StatementResult result; 

    public static Session getSession() throws Exception{ 
     if (ses==null) { 
      Driver driver=GraphDatabase.driver("bolt://270.270.270.270", AuthTokens.basic(username, password)); 
      ses=driver.session(); 
     } 
     return ses; 

    } 

    public static String getHalt(String id) throws Exception{ 
     String halt = null; 
     result=ses.run("MATCH (s:Halt) WHERE ID(s) ="+id+" RETURN s"); 
     return halt; 
    } 

} 
相關問題