在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"; }