Làm thế nào để sử dụng cơ sở dữ liệu hiện có trong neo4j bằng cách sử dụng java api? Tôi đã tạo một cơ sở dữ liệu neo4j và muốn sử dụng nó cho một số truy vấn. Tuy nhiên, khi tôi mở cơ sở dữ liệu hiện có mà tôi đã tạo và đã thực hiện một số truy vấn, nó không trả về gì cả. Đoạn mã tôi đang sử dụng như sau:Neo4j: Làm thế nào để mở một cơ sở dữ liệu hiện có trong neo4j bằng cách sử dụng java api?
private static final String DB_PATH = "c:/Users/Reed/workspace/test/target1/ttldb";
GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH);
ExecutionEngine engine = new ExecutionEngine(db);
ExecutionResult result;
try (Transaction tx = db.beginTx();)
{
result = engine.execute("match (n) return n");
Iterator<Node> n_column = result.columnAs("n");
for (Node node : IteratorUtil.asIterable(n_column))
{
nodeResult = node + ": " + node.getProperty("name");
System.out.println(nodeResult);
}
tx.success();
}
Mọi đề xuất? Cảm ơn bạn trước.
bạn biến 'nodeResult' không được khai báo . Bạn có thực sự chắc chắn rằng cơ sở dữ liệu của bạn có chứa dữ liệu không? Bạn đã tạo dữ liệu bằng cách nào? Bạn đã cam kết sau khi nhập? – tstorms
Theo mặc định, cơ sở dữ liệu neo4j sẽ không có bất kỳ dữ liệu nào. Bạn nên chắc chắn rằng khi bạn thực hiện ghi trong cơ sở dữ liệu của bạn, bạn đang cam kết chúng, và rằng bạn đang đóng DB đúng cách (sử dụng một móc tắt máy để đảm bảo rằng dữ liệu được flushed đúng). – Nicholas
nếu đường dẫn của bạn là tốt nhất (thư mục db bạn muốn nhận) mọi thứ sẽ hoạt động tốt. Điều duy nhất còn thiếu là một khối 'cuối cùng {tx.close()}' ở cuối mệnh đề try của bạn. – Supamiu