同时使用Neo4j的螺栓驱动程序和Java API
大家好强> 我开发了一个JavaFX应用程序来支持我的科学工作(分子生物学/神经药理学),在2.x版时实现了Neo4j 现在,由于版本3(使用3.1.0-M05)已经发布,我将切换到使用驱动程序(1.1.0-M01)接口访问数据库的Bolt协议。但是,我的应用程序的一些函数仍然需要JavaAPI访问,因此我不能完全放弃旧代码。我使用单例GraphDatabaseFactory来启动数据库,如下所示同时使用Neo4j的螺栓驱动程序和Java API,java,neo4j,Java,Neo4j,大家好 我开发了一个JavaFX应用程序来支持我的科学工作(分子生物学/神经药理学),在2.x版时实现了Neo4j 现在,由于版本3(使用3.1.0-M05)已经发布,我将切换到使用驱动程序(1.1.0-M01)接口访问数据库的Bolt协议。但是,我的应用程序的一些函数仍然需要JavaAPI访问,因此我不能完全放弃旧代码。我使用单例GraphDatabaseFactory来启动数据库,如下所示 private static GraphDatabaseService instance; priv
private static GraphDatabaseService instance;
private GraphDb() {
instance = new GraphDatabaseFactory().newEmbeddedDatabaseBuilder(new File(FilePaths.DATABASE_PATH))
.setConfig(ShellSettings.remote_shell_enabled, "true").newGraphDatabase();
}
public static synchronized GraphDatabaseService getInstance() {
return instance;
}
(或者,仅使用.newEmbeddedDatabase()
)但是现在,从版本3开始,我还使用单例驱动程序实例进行Bolt交互,如下所示
private static Driver instance;
private GraphDbDriver() {
startLocalDb();
instance = GraphDatabase.driver("bolt://localhost");
}
private static void startLocalDb() {
//start database here?
}
public static synchronized Driver getInstance() {
return instance;
}
我现在的问题是(因为我认为同时使用这两种方式只会带来复杂性):我如何使用这两种与DB通信的方式,而不让它们相互妨碍
我可以让驱动程序加载到已经创建的GraphDatabaseService单例中吗
谢谢你的阅读 因此,对于任何对Neo4j 3.x感兴趣的人,建议使用“用户定义过程”来实现API命令(如遍历),然后从cypher调用它(通过
CALL
)