在JAVA中使用Cypher涉及到org.neo4j.cypher.javacompat包的两个类.
类名 | 方法名 | 说明 |
ExecutionEngine | public ExecutionResult execute(String query) | 执行query返回存储结果集的一个迭代器(ExecutionResult) |
(用于执行Cypher Query) |
public ExecutionResult execute(String query, Map<String,Object> params)
|
执行query返回存储结果集的一个迭代器(ExecutionResult)
其中,params是query所需的参数
|
ExecutionResult | public <T> Iterator<T> columnAs(String n) | 返回结果集中n作为列名指定的列信息的集合 |
(保存Cypher Query执行后的结果集) | public List<String> columns() | 返回结果集各个列的列名 |
public Iterator<Map<String,Object>> iterator() | 结果集的一个迭代器,每个元素代表一行记录(存储为map) | |
public String toString() | ||
public void toString(PrintWriter writer) |
可参考的代码片段:
String rows = "";
//执行一个Cypher Query的查询
ExecutionEngine engine = new ExecutionEngine( db );
ExecutionResult result = engine.execute( "start n=node(0) return n, n.name" );
//直接打印出Query结果
System.out.println(result.toString());
//获取结果集的列名的列表
List<String> columns = result.columns();
//获取指定列的结果集
Iterator<Node> n_column = result.columnAs('n');
for(Node node : IteratorUtil.asIterable(n_column)) {
String nodeResult = node + ": " + node.getProperty("name");
}
//获取结果集的每条记录
for(Map<String, Object> row : result) {
for(Entry<String, Object> column : row.entrySet()) {
rows += column.getKey() + ":" + column.getValue() + ";";
}
rows += "\n";
}