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