Neo4j与Java
Neo4j的Java API体系架构
Native Java API用起来比较麻烦,推荐使用Cypher Java API。
环境搭建
在Java编辑器里,添加library,找到Neo4j的安装目录下的lib文件夹。将其添加到Java项目的library下面即可。
Cypher Java API
Neo4j数据库创建和操作
// 创建一个架构/数据库
GraphDatabaseFactory dbFactory = new GraphDatabaseFactory();
GraphDatabaseService graphDb= dbFactory.newEmbeddedDatabase("C:/TPNeo4jDB");
// 创建Neo4j Cypher执行引擎。它用于在Java应用程序中执行Neo4j CQL命令。
ExecutionEngine execEngine = new ExecutionEngine(graphDb);
// 通过使用Neo4j Cypher执行引擎,执行Neo4j CQL命令以检索CQL MATCH命令的结果。
ExecutionResult execResult = execEngine.execute
("MATCH (java:JAVA) RETURN java");
// 获取CQL命令结果的字符串,以在控制台中打印结果。
String results = execResult.dumpToString();
System.out.println(results);
注意:
像这样,我们可以使用Neo4j JAVA API执行任何CQL命令。
如果我们的Neo4j服务器通过引用我们新创建的数据库启动和运行,那么我们就不能执行我们的程序,因为服务器已经锁定了这个数据库。
所以当我们执行我们以前的程序时,我们会得到一些错误时序跟踪
java.io.IOException:无法锁定锁文件C:\ TPNeo4jDB \ lock,因为另一个进程已经持有该锁。
为了避免这个问题,首先停止我们的服务器,然后执行程序。
因为交替情况下Neo4j DB Server一次只接受一个锁。在实时应用程序中,Ne04J DBA人员将更新数据库属性以允许一次允许一些数量的锁。
通过浏览器查看Java创建的Neo4j数据库的状态
MATCH (java:JAVA) RETURN java.TutorialID,java.Title,
java.NoOfChapters,java.Status