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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (26)

我是Neo4J的新手,尽管我在Google上搜索了几个小时,但无法找到答案。

到目前为止,我一直在关注教程,现在我对如何/何时使用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来读取命令)。

扫码关注云+社区