如何使用Java连接到本地安装的neo4j服务器

我是Neo4J的新手,尽管我用了几个小时的谷歌搜索,却找不到我的问题的答案。

到目前为止,我一直在关注这些教程,现在我对如何/何时使用Neo4j有了基本的了解。 现在,我即将开始修改我的hello-world代码并连接到我机器上本地安装的Neo4J服务器,可通过http://127.0.0.1:7474访问。

原始连接(使用嵌入式数据库):

GraphDatabaseService gdb = new EmbeddedGraphDatabase("c:\\helloworld\\data\\graph.db"); 

问题是,无论如何要修改此行以连接到c:\ neo4j \ data \ graph.db中的“服务器”数据库? 服务器当前正在作为Windows服务运行,我可以使用Web管理工具查看其数据库。 目前,我对使用REST API不感兴趣,因为服务器和客户端应用程序在同一台机器上运行。

我觉得我在这里遗漏了一些明显的东西……

Windows服务公开REST接口。

嵌入式接口完全不同 – 您将其指向数据库文件结构,然后通过Java方法调用访问它。

如果你们同时运行,指向相同的数据,那么可能会发生不好的事情(实际上,我认为它会检测到并阻止它)。 因此,您可能需要停止服务和/或将数据从此实例备份到另一个目录。 然后编辑EmbeddedGraphDatabase构造函数以指向此目录。

正如您所见, 本手册描述了嵌入式Java接口。 另请参阅本节 ,其中简要介绍了相当不错的基于Web的管理界面。

我在包装器上找不到任何示例代码,所以这就是我最终做的事情。

 EmbeddedGraphDatabase graphDb = new EmbeddedGraphDatabase("C:\\neo4j\\data\\graph.db"); WrappingNeoServerBootstrapper srv = new WrappingNeoServerBootstrapper(graphDb); srv.start(); try { while (System.in.read() != 46) { // wait until we send a period (.) to kill the server } } catch (IOException e) {} srv.stop(); 

这将允许您访问localhost:7474并查看webadmin工具就像运行服务器一样,但也继续使用您常用的Java代码(使用输入流编写您自己的简单API来读取命令)。

我知道它是一个旧post,但仍然添加我的答案。 您可以使用Neo4jConnection。 示例代码

 Neo4jConnection connect=null; connect = new Driver(). connect(DB_URL, new Properties()); ResultSet resultSet=connect.createStatement().executeQuery("YOUR QUERY") 

使用Jersey Client的HttpBasicAuthFilter结束

你的参数应该是这样的:

  public static final String DATABASE_ENDPOINT = "http://localhost:7474/db/data"; public static final String DATABASE_USERNAME = "neo4j"; public static final String DATABASE_PASSWORD = "3c0a0a6ea1sdsdsdsdsdsdsdsdf2a94d"; private String callRest(String query) { final String cypherUrl = ENDPOINT + "/cypher"; Client c = Client.create(); c.addFilter(new HTTPBasicAuthFilter(USERNAME, PASSWORD)); WebResource resource = c.resource(cypherUrl); String request = "{\"query\":\"" + query + "\"}"; ClientResponse response = resource.accept(MediaType.APPLICATION_JSON) .type(MediaType.APPLICATION_JSON).entity(request) .post(ClientResponse.class); String object = response.getEntity(String.class); response.close(); return object; } 

最新的Jersey客户端可以通过将它添加到你的mvn pom中找到它,如果它还没有在你的依赖树中。

   com.sun.jersey jersey-client 1.18.3  

请参阅: https : //stackoverflow.com/posts/28303766