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

2022-09-03 02:45:50

我是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 不感兴趣,因为服务器和客户端应用在同一台计算机上运行。

我觉得我在这里错过了一些明显的东西...


答案 1

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

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来读取命令)。


答案 2

Windows 服务公开 REST 接口。

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

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

本手册描述了嵌入式 Java 接口,您可能已经看过了。另请参阅本节,其中简要提到了相当不错的基于Web的管理界面。


推荐