2014-09-24 5 views
9

Wie verwende ich die vorhandene Datenbank in neo4j mit Java API? Ich habe bereits eine neo4j-Datenbank erstellt und wollte sie für mehrere Abfragen verwenden. Als ich jedoch die vorhandene Datenbank öffnete, die ich erstellt und eine Abfrage durchgeführt hatte, gab sie nichts zurück. Das Fragment von Code, den ich verwende, ist wie folgt:Neo4j: Wie öffne ich eine existierende Datenbank in neo4j mit 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(); 

} 

Irgendwelche Vorschläge? Vielen Dank im Voraus.

+0

Ihre variablen 'nodeResult' nicht deklariert . Sind Sie wirklich sicher, dass Ihre Datenbank Daten enthält? Wie haben Sie die Daten erstellt? Hast du dich nach deinem Import verpflichtet? – tstorms

+1

Standardmäßig enthält die neo4j-Datenbank keine Daten. Sie sollten sicherstellen, dass Sie beim Ausführen von Schreibvorgängen in Ihrer Datenbank diese festschreiben und dass Sie die Datenbank ordnungsgemäß schließen (mithilfe eines Shutdown-Hooks, um sicherzustellen, dass die Daten ordnungsgemäß geleert werden). – Nicholas

+0

Wenn Ihr Pfad der richtige ist (der DB-Ordner, den Sie bekommen möchten), sollte alles gut funktionieren. Das einzige was fehlt ist ein 'finally {tx.close()}' Block am Ende der try-Klausel. – Supamiu

Antwort

0

Wenn Sie Neo4j in Embedded-Modus verwenden, dh es innerhalb der gleichen JVM wie Ihre Anwendung ausgeführt wird, können Sie sie mit Zugriff.

GraphDatabaseService GraphDB = new GraphDatabaseFactory() newEmbeddedDatabase (DBPATH)

wo DBPATH der Pfad zu der Datenbank Sie verwenden Webadmin erstellt. Sie finden diesen Pfad in Ihrem neo4j-Installationsverzeichnis/conf/neo4j-server.properties (Der Name der Eigenschaft lautet org.neo4j.server.database.location)

Sobald Sie Ihren graphDb instanziiert haben, können Sie Cypher-Abfragen als ausführen in http://docs.neo4j.org/chunked/stable/tutorials-cypher-java.html

beschrieben Wenn Sie nicht Neo4j in Embedded-Modus verwenden und wollen den vorhandenen Server läuft auf Port 7474 verbinden, können Sie den Java-Rest Bindung verwenden: https://github.com/neo4j/java-rest-binding/

+0

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