2014-09-24 15 views
9

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.

+0

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

+1

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

+0

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

Trả lời

0

Nếu bạn đang sử dụng Neo4j trong chế độ nhúng tức là nó chạy trong JVM tương tự như ứng dụng của bạn, bạn có thể truy cập nó bằng cách sử:.

GraphDatabaseService graphDb = new GraphDatabaseFactory() newEmbeddedDatabase (DBPATH)

trong đó DBPATH là đường dẫn đến cơ sở dữ liệu bạn đã tạo bằng Webadmin. Bạn có thể tìm thấy đường dẫn đó trong thư mục cài đặt neo4j của bạn/conf/neo4j-server.properties (Tên thuộc tính là org.neo4j.server.database.location)

Khi bạn đã khởi tạo graphDb, bạn có thể thực thi truy vấn Cypher được mô tả trong http://docs.neo4j.org/chunked/stable/tutorials-cypher-java.html

Nếu bạn không sử dụng Neo4j trong chế độ nhúng và muốn kết nối đến máy chủ hiện đang chạy trên cổng 7474, bạn có thể sử dụng phần còn lại java ràng buộc: https://github.com/neo4j/java-rest-binding/

+0

http://neo4j.com/docs/stable/server-configuration.html –

Các vấn đề liên quan