0

目前我有这门课。当我删除 QueryResult 它运行主要方法并自行完成。当我添加 QueryResult 时,我需要手动终止运行。我怎样才能使它优雅地结束?谢谢。

public class TestConnect {
  public static void main(String[] args) {
    System.out.println("starting test");
     final RestAPI api = new RestAPIFacade("http://localhost:7474/db/data");
    System.out.println("API created");
    final RestCypherQueryEngine engine = new RestCypherQueryEngine(api);
    System.out.println("engine created");
    QueryResult<Map<String,Object>> result = engine.query("start n=node({id}) return n;", map("id",0));
  }
}

编辑:我正在使用 Java 7。

4

1 回答 1

1

我没有使用 neo4j 的经验,但是 QueryResults 通常需要关闭,以便 java 释放/清理连接和类似的东西。

顺便说一句,我不知道您使用的是哪个版本的 java,但如果它是 java 7 或更高版本并且此结果实现了 java.lang.AutoClosable (它可能会这样做),您可以使用自动资源管理!耶!

所以要么手动调用:(result.close最好在 finally 块中)或使用 ARM:

try (QueryResult> result = engine.query("start n=node({id}) return n;", map("id",0))) {
    // 在这里做事
}

可能应该这样做。

于 2013-04-22T13:27:04.863 回答