是否可以让Java程序和Rest客户端访问Neo4J数据库
我的理解是,如果您使用的是Java执行引擎,那么就不能同时启动允许您通过web控制台访问DB的neo4j进程。但是这个过程也促进了RESTAPI,对吗?有没有办法通过Java程序和REST API利用执行引擎?因此,据我所知,主要问题是一次只能有一个JVM进程访问数据库。因此,当您谈论RESTAPI时,您真正的意思是有一个正在运行的API。该JVM进程已锁定数据库。该服务器实例恰好在某个主机和端口上提供了RESTAPI。现在,如果您有一个正在运行的服务器实例,那么就不能单独运行一个不同的java进程,该进程使用 要想做你想做的事,你有两个选择: 选项1:从Java使用REST 您可以编写一个java程序。在本例中,您的第二个java程序只是对服务器进行网络调用,而不是直接接触数据库本身。所以没有冲突,你可以两者兼得 您的代码看起来会有所不同—它将更加关注于发出RESTful调用和处理生成的JSON,如下所示:是否可以让Java程序和Rest客户端访问Neo4J数据库,neo4j,Neo4j,我的理解是,如果您使用的是Java执行引擎,那么就不能同时启动允许您通过web控制台访问DB的neo4j进程。但是这个过程也促进了RESTAPI,对吗?有没有办法通过Java程序和REST API利用执行引擎?因此,据我所知,主要问题是一次只能有一个JVM进程访问数据库。因此,当您谈论RESTAPI时,您真正的意思是有一个正在运行的API。该JVM进程已锁定数据库。该服务器实例恰好在某个主机和端口上提供了RESTAPI。现在,如果您有一个正在运行的服务器实例,那么就不能单独运行一个不同的java
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 );
System.out.println( String.format(
"POST [%s] to [%s], status code [%d], returned data: "
+ System.getProperty( "line.separator" ) + "%s",
payload, txUri, response.getStatus(),
response.getEntity( String.class ) ) );
response.close();
有关更多代码示例和教程,请参见前面的链接
选项2:使用GraphDatabaseService包装器
这是包装纸。这让您可以这样做:
GraphDatabaseService gds = new RestGraphDatabase("http://localhost:7474/db/data");
然后可以像使用常规JavaAPI对象一样使用gds
对象
这与选项1的工作原理相同——您不是直接访问数据库,而是通过包装器与RESTful服务交互