如何在java中使用“dump”neo4j shell命令

时间:2014-10-02 13:43:00

标签: java shell neo4j

我正在使用Neo4j作为数据库处理Java EE应用程序。在这个应用程序中,我需要对用户的项目进行一些备份以及时比较它们(例如,用户有一个项目(主节点+子节点+标签+关系)A,创建于01/01/2014 ,他创建了该项目的副本2014年1月30日,并希望将其与1个月后的实际版本进行比较)。我的想法是使用" dump"从neo4j-shell复制用户想要的所有项目,并将其保存在数据库中,以使用户能够比较它们。

但问题出在那里,我从4天开始在互联网上搜索,而且我总是坚持这个。

我尝试用cypher来做,但对我来说最好的方法是neo4j-shell,因为dump命令可以返回一个cypher查询来创建带有标签,关系和子节点的相同节点,然后我只需要编辑一些参数它......等等!

我需要什么:

  • 在我的应用程序代码中使用neo4j-shell来使用dump命令(Java EE)
  • 能够获得dump neo4j-shell命令的结果

我不需要知道如何使用cypher,我已经在我的所有应用程序中都这样做了,我在java代码中需要neo4j-shell的唯一原因是因为我没有找到在cypher查询中执行类似备份命令的方法(如果你知道如何,请告诉我,使用cypher应该更容易实现)

我希望你能帮助我,度过美好的一天:)

2 个答案:

答案 0 :(得分:1)

您可能需要考虑使用Neo4J JDBC driver将neo4j数据库公开为JDBC连接,然后使用其他现有工具从该JDBC连接中查询/备份。

似乎正如您所发现的那样,dump可以用于创建可用于重新创建另一个neo4j数据库的密码。如果这不是您想要的,也许您想将信息转储为表格数据?将neo4j设置为JDBC连接点的优点是,您可以重用任何知道如何与JDBC数据库通信的工具,并使用所有这些工具来查询/格式化/转储数据。

答案 1 :(得分:0)

只需调用transactional http endpoint并使用返回的JSON字符串作为比较。

示例也在文档中。

对于Java,您可以在这里查看:http://docs.neo4j.org/chunked/milestone/server-java-rest-client-example.html#_sending_cypher