gpt4 book ai didi

java - Neo4j跨类获取多个数据库实例

转载 作者:行者123 更新时间:2023-12-01 13:38:51 27 4
gpt4 key购买 nike

我使用 Neo4j 来存储节点,并且需要跨类访问 Neo4j 数据库,这些类都应该能够同时连接到数据库。

我目前使用

    public void setUp()
{
//deleteFileOrDirectory(new File(FILESYSTEM_DB));
graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(FILESYSTEM_DB);
indexManager = graphDb.index();
index = indexManager.forNodes("indexNodes");
registerShutdownHook();
}

创建数据库并连接到它,但是下次另一个类尝试运行类似的方法(或同一类的另一个实例调用相同的 setUp() 方法)时,我得到一个相当合理的

“获取锁时出错(org.neo4j.kernal.StoreLockException)”。

如何检查数据库是否正在运行,如果没有运行,则调用 newEmbeddedDatabase(FILESYSTEM_DB) 否则连接到正在运行的实例?

最佳答案

确保变量graphDb和其他变量不是局部变量,而是某个类Neo4jConnection实例的字段。然后,创建该类的单个实例(单例),运行一次 setUp() 并在需要访问数据库时使用该连接。如何管理该单例取决于您的环境(您使用 Spring 吗?)。最简单的方法是使用一个引用该单例的静态变量。阅读 https://stackoverflow.com/questions/2832297以及其他标有 java+singleton tags 的讨论

关于java - Neo4j跨类获取多个数据库实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21017790/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com