Neo4j JDBC和嵌入式服务器

时间:2014-11-18 23:08:56

标签: jdbc neo4j

我正在尝试将Neo4j的JDBC驱动程序与嵌入式Neo4j一起使用。我已经复制了jar,配置了构建路径,编写了代码以创建GraphDatabaseService作为有限的指令。然而,我迷失了如何让JDBC指向嵌入式(并且正在运行的,有希望的)服务器。

我为JDBC指定的URL是" jdbc:neo4j:simulationDb?debug = true"。如何以及在何处为嵌入式服务器设置此项?

2 个答案:

答案 0 :(得分:3)

如果您要连接到嵌入式数据库,那么您的JDBC网址需要如下所示:

jdbc:neo4j:file:/home/user/neo/graph.db其中/home/user/neo/graph.db是Neo4j数据库的路径。

然后使用

获取java.sql.Connection
Connection con = DriverManager.getConnection("jdbc:neo4j:file:/home/user/neo/graph.db");

嵌入式服务器没有嵌入您的应用程序(根据您提供的链接),或者Neo4j作为独立服务器运行的服务器模式。 如果您在服务器模式下运行,则您的JDBC URL看起来像jdbc:neo4j://localhost:7474/(如果您的Neo4j服务器在localhost:7474上运行)并且您以相同的方式获得连接。

这里有一些使用JDBC驱动程序的示例代码https://github.com/luanne/flavorwocky-jdbc-migrate/blob/master/src/com/flavorwocky/migrate/MigrateDb.java

答案 1 :(得分:1)

实际上......我只是想通了。为了后人的缘故,我会在这里发布代码片段。

simulationDb = new GraphDatabaseFactory() 
.newEmbeddedDatabaseBuilder(DB_PATH)
.loadPropertiesFromFile(CONFIG_PATH) 
.newGraphDatabase(); 

registerShutdownHook(simulationDb); 

Class.forName(JDBC_DRIVER); 

Properties props = new Properties(); 
props.put("simulationDb", simulationDb); 

db = DriverManager.getConnection(URL, props);