我是neo4j的新手,我想創建一個應用程序。以嵌入式數據庫方式播放neo4j
通過遠程服務器模式,似乎只有REST API可用於連接到neo4j。 所以我決定使用嵌入式數據庫,因爲我想使用neo4j提供的JAVA API。
有教程的例子來創建連接:
private static final String DB_PATH = "C:/Users/Hao/Documents/Neo4j/TGI_test_backup";
public static void main(String[] args) throws IOException
{
FileUtils.deleteRecursively(new File(DB_PATH));
GraphDatabaseService database = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH);
GraphDatabaseService database = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH);
TraversalExample example = new TraversalExample(database);
Node joe = example.createData();
example.run(joe);
}
public TraversalExample(GraphDatabaseService db)
{
this.db = db;
// START SNIPPET: basetraverser
friendsTraversal = db.traversalDescription()
.depthFirst()
.relationships(Rels.KNOWS)
.uniqueness(Uniqueness.RELATIONSHIP_GLOBAL);
// END SNIPPET: basetraverser
}
private Node createData()
{
String query = "CREATE (joe {name: 'Joe'}), (sara {name: 'Sara'}), "
+ "(lisa {name: 'Lisa'}), (peter {name: 'PETER'}), (dirk {name: 'Dirk'}), "
+ "(lars {name: 'Lars'}), (ed {name: 'Ed'}),"
+ "(joe)-[:KNOWS]->(sara), (lisa)-[:LIKES]->(joe), "
+ "(peter)-[:KNOWS]->(sara), (dirk)-[:KNOWS]->(peter), "
+ "(lars)-[:KNOWS]->(drk), (ed)-[:KNOWS]->(lars), "
+ "(lisa)-[:KNOWS]->(lars) "
+ "RETURN joe";
Result result = db.execute(query);
Object joe = result.columnAs("joe").next();
if (joe instanceof Node)
{
return (Node) joe;
}
else
{
throw new RuntimeException("Joe isn't a node!");
}
}
似乎我每次運行此代碼時,它會創建一個新的數據庫實例,而且所有存在的數據將被覆蓋。
但數據需要保存,我不會所有的數據導入到數據庫中的代碼...
如何解決這個問題呢?我需要的是連接到數據庫並使用已有的數據。
謝謝。