2016-03-01 74 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; 
    } 

} 
相关问题