`
hugh.wangp
  • 浏览: 288751 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Neo4j-在JAVA中执行Cypher查询

阅读更多

 

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

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics