举报投诉联系我们 手机版 热门标签 鳄鱼CMS
您的位置:鳄鱼CMS > neo4j cypher Neo4j Cypher - API示例

neo4j cypher Neo4j Cypher - API示例

2023-06-08 14:31 neo4j教程

neo4j cypher Neo4j Cypher - API示例

neo4j cypher

Neo4j Cypher 是一种图形数据库查询语言,它是 Neo4j 图形数据库的主要查询语言。它是一种基于声明式的、可扩展的、可编程的查询语言,用于从图形数据库中检索和修改数据。Cypher 的目标是使用一种易于理解的方式来表达复杂的图形关系,并且可以在不同的图形数据库中使用。

Cypher 语法非常直观,它使用关键字和表达式来表示图形关系。例如,MATCH 关键字用于匹配特定的关系或者节点;WHERE 关键字用于过滤匹配到的元素;RETURN 关键字用于返回匹配到的元素。Cypher 还有一个 CREATE 命令,可以用来创建新的元素或者关系。

MATCH (n:Person) 
WHERE n.name = 'John' 
RETURN n

上述代码将会返回所有标记为 Person 的节点中名字为 John 的所有节点。Cypher 还有一个 MERGE 命令,可以在不存在时创建新的元素或者关系:

MERGE (n:Person {name:'John'}) 
RETURN n

上述代码将会在不存在时创建一个标记为 Person 的名字为 John 的新节点并返回它。此外,Cypher 还有一个 SET 命令,可以用来修改已有的元素或者关系:

MATCH (n:Person {name:'John'}) 
SET n.age = 30 
RETURN n

上述代码将会修改名字为 John 的 Person 节

Neo4j Cypher - API示例

在上一章中,我们已经讨论了如何使用Neo4j Native Java API开发和测试Java应用程序。 现在我们将在本章中讨论Neo4j Cypher Java 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类

现在开始编写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


第3步 -创建Neo4j Cypher执行引擎。它用于在Java应用程序中执行Neo4j CQL命令。

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是否处于关闭模式

第8步 -执行Java程序并在Eclipse IDE控制台中观察输出。


执行Java程序

选择我们的Neo4j数据库文件夹,然后单击“开始”按钮


Neo4j数据库文件夹


一旦此数据库成功启动,通过单击“http:// localhost:7474”链接访问Neo4j浏览器来观察我们的数据。


http:// localhost:7474


第9步 -在Neo4j数据浏览器的$ prompt下输入以下命令

MATCH (java:JAVA) RETURN java.TutorialID,java.Title,
   java.NoOfChapters,java.Status


MATCH (java:JAVA) RETURN java.TutorialID,java.Title,    java.NoOfChapters,java.Status


在数据浏览器中查看结果


观察Eclipse IDE结果
如果我们观察Eclipse IDE结果和Neo4j数据浏览器的结果,两者都是正确的。


注意 -

像这样,我们可以使用Neo4j JAVA API执行任何CQL命令。

如果我们的Neo4j服务器通过引用我们新创建的数据库启动和运行,那么我们不能执行我们的程序,因为服务器已经锁定了这个数据库。

所以当我们执行我们以前的程序时,我们会得到一些错误堆栈跟踪


java.io.IOException: Couldn't lock lock file C:TPNeo4jDBlock because another process already holds the lock.


为了避免这个问题,首先停止我们的服务器,然后执行程序。

因为默认情况下Neo4j DB Server一次只接受一个锁。 在实时应用程序中,Ne04J DBA人员将更新数据库属性以允许一次允许一些数量的锁。


阅读全文
以上是鳄鱼CMS为你收集整理的neo4j cypher Neo4j Cypher - API示例全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 鳄鱼CMS eyucms.com 版权所有 联系我们