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 节
此Java API用于直接执行Neo4j CQL命令。 它类似于JDBC API直接执行SQL命令。
本示例演示如何在Eclipse IDE中开发Java应用程序,以开发和测试Neo4j Cypher Java API示例
第1步 创建Java类JavaNeo4jCQLRetrivalTest
现在开始编写Neo4j Java API编码以执行Neo4j DB操作
第2步 -创建Neo4j数据库
GraphDatabaseFactory dbFactory = new GraphDatabaseFactory(); GraphDatabaseService db= dbFactory.newEmbeddedDatabase("C:/TPNeo4jDB");
它在指定的路径为我们创建一个Schema / Database,如下所示。这类似于Oracle SQL的“CREATE DATABASE”命令。
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是否处于关闭模式。 如果没有,请点击“停止”按钮展开它。
第8步 -执行Java程序并在Eclipse IDE控制台中观察输出。
选择我们的Neo4j数据库文件夹,然后单击“开始”按钮
MATCH (java:JAVA) RETURN java.TutorialID,java.Title, java.NoOfChapters,java.Status
注意 -
像这样,我们可以使用Neo4j JAVA API执行任何CQL命令。所以当我们执行我们以前的程序时,我们会得到一些错误堆栈跟踪
java.io.IOException: Couldn't lock lock file C:TPNeo4jDBlock because another process already holds the lock.
在Mongodb里面存在另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求。当MongoDB存储海量的数据时,一台机器可能不...
在MS Access和其他DBMS系统中,查询可以做的不仅仅是显示数据,但它们实际上可以对数据库中的数据执行各种操作。操作查询是可以...
SQLite 的INSERT INTO语句用于向数据库的某个表中添加新的数据行。语法INSERT INTO 语句有两种基本语法,如下所示:INSERT INTO ...
SQLite 的 ORDER BY 子句是用来基于一个或多个列按升序或降序顺序排列数据。 语法 ORDER BY 子句的基本语法如下: SELECT co...