Neo4j Cypher - API示例
在开发应用程序之前,请参考“Neo4j Java环境设置”一章来设置Eclipse IDE来开发此应用程序
如果你观察到Neo4j Native Java API方法,开发大型应用程序是非常乏味和麻烦的。 所以为了避免这种复杂性,Neo4j引入了另一组Java API。
此Java API用于直接执行Neo4j CQL命令。 它类似于JDBC API直接执行SQL命令。
Neo4j Cypher Java API示例
本示例演示如何在Eclipse IDE中开发Java应用程序,以开发和测试Neo4j Cypher Java API示例
第1步 创建Java类JavaNeo4jCQLRetrivalTest
![创建Java类](https://atts.w3cschool.cn/attachments/day_170102/201701021620428303.png)
现在开始编写Neo4j Java API编码以执行Neo4j DB操作
第2步 -创建Neo4j数据库
GraphDatabaseFactory dbFactory = new GraphDatabaseFactory(); GraphDatabaseService db= dbFactory.newEmbeddedDatabase("C:/TPNeo4jDB");
它在指定的路径为我们创建一个Schema / Database,如下所示。这类似于Oracle SQL的“CREATE DATABASE”命令。
![创建一个Schema / Database](https://atts.w3cschool.cn/attachments/day_170102/201701021621441284.png)
ExecutionEngine execEngine = new ExecutionEngine(graphDb);
第4步 - 通过使用Neo4j Cypher Execution Engine,执行Neo4j CQL Command以检索CQL MATCH命令的结果。
ExecutionResult execResult = execEngine.execute ("MATCH (java:JAVA) RETURN java");
第5步 -获取CQL命令结果的字符串,以在控制台中打印结果。
String results = execResult.dumpToString(); System.out.println(results);
第6步 -最终源代码。
package com.tp.neo4j.java.cql.examples; import org.neo4j.cypher.javacompat.ExecutionEngine; import org.neo4j.cypher.javacompat.ExecutionResult; import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.graphdb.factory.GraphDatabaseFactory; public class JavaNeo4jCQLRetrivalTest { public static void main(String[] args) { GraphDatabaseFactory graphDbFactory = new GraphDatabaseFactory(); GraphDatabaseService graphDb = graphDbFactory.newEmbeddedDatabase("C:/TPNeo4jDB"); ExecutionEngine execEngine = new ExecutionEngine(graphDb); ExecutionResult execResult = execEngine.execute("MATCH (java:JAVA) RETURN java"); String results = execResult.dumpToString(); System.out.println(results); } }
第7步 -在执行此Java程序之前,检查您的Neo4j是否处于关闭模式。 如果没有,请点击“停止”按钮展开它。
![检查Neo4j是否处于关闭模式](https://atts.w3cschool.cn/attachments/day_170102/201701021623308938.png)
第8步 -执行Java程序并在Eclipse IDE控制台中观察输出。
![执行Java程序](https://atts.w3cschool.cn/attachments/day_170102/201701021624117317.png)
选择我们的Neo4j数据库文件夹,然后单击“开始”按钮
![Neo4j数据库文件夹](https://atts.w3cschool.cn/attachments/day_170102/201701021624416389.png)
![http:// localhost:7474](https://atts.w3cschool.cn/attachments/day_170102/201701021625147273.png)
MATCH (java:JAVA) RETURN java.TutorialID,java.Title, java.NoOfChapters,java.Status
![MATCH (java:JAVA) RETURN java.TutorialID,java.Title, java.NoOfChapters,java.Status](https://atts.w3cschool.cn/attachments/day_170102/201701021625472795.png)
![观察Eclipse IDE结果](https://atts.w3cschool.cn/attachments/day_170102/201701021626257081.png)
注意 -
像这样,我们可以使用Neo4j JAVA API执行任何CQL命令。如果我们的Neo4j服务器通过引用我们新创建的数据库启动和运行,那么我们不能执行我们的程序,因为服务器已经锁定了这个数据库。
所以当我们执行我们以前的程序时,我们会得到一些错误堆栈跟踪
java.io.IOException: Couldn't lock lock file C:\TPNeo4jDB\lock because another process already holds the lock.
因为默认情况下Neo4j DB Server一次只接受一个锁。 在实时应用程序中,Ne04J DBA人员将更新数据库属性以允许一次允许一些数量的锁。
更多建议: