我在Kotlin有一个使用Neo4j 3.3.5作为嵌入式数据库的Spring启动项目。 测试数据库是否可访问(读写)。 我现在想使用neo4j desktop 1.0.24作为远程数据库访问数据库,以便以图形方式查看节点,并可能在外部添加我自己的节点。
我目前使用以下方式访问数据库:
private val curdir = System.getProperty("user.dir")
val graphDb: GraphDatabaseService = GraphDatabaseFactory().newEmbeddedDatabase(File("${curdir}/database"))
我找到的最新指南是this。
简而言之,上面指南中提供的配置是:
GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabaseBuilder(DB_DIR)
.setConfig(ShellSettings.remote_shell_enabled, "true")
.setConfig(ShellSettings.remote_shell_port, "5555")
.newGraphDatabase();
然而,似乎不起作用(未解析的参考ShellSettings)。
在对当前(3.3)文档进行一些搜索之后,我发现setConfig
有3种版本,其中有两种已被弃用:
setConfig(Map<String,String> config) // deprecated
setConfig(String name, String value) // deprecated
setConfig(Setting<?> setting, String value)
最后一个选项不是,但interface Setting<T>
本身正在等待重建,也已弃用。
尝试像这样使用setConfig:
var graphDb = GraphDatabaseFactory().newEmbeddedDatabaseBuilder(File("${curdir}/database"))
.setConfig("remote_shell_enabled", "true")
.setConfig("remote_shell_port", "5555")
.newGraphDatabase()
虽然适用于Spring,但无法通过neo4j Desktop访问配置:
Database Name: Database
Host: localhost
Bolt Port: 5555
username: blank
password: blank
我还能尝试什么?
答案 0 :(得分:0)
桌面未使用public string MyValueMapping(bool mapValue, string value)
{
return (mapValue ? value : string.Empty);
}
,而是shell
。
所以你需要在配置中启用它:
bolt protocol
您还必须在项目中添加lib:
GraphDatabaseSettings.BoltConnector bolt = GraphDatabaseSettings.boltConnector( "0" );
GraphDatabaseService graphDb = new GraphDatabaseFactory()
.newEmbeddedDatabaseBuilder( DB_PATH )
.setConfig( bolt.type, "BOLT" )
.setConfig( bolt.enabled, "true" )
.setConfig( bolt.address, "localhost:7687" )
.newGraphDatabase();
有关详细信息,请参阅文档:https://neo4j.com/docs/java-reference/current/tutorials-java-embedded/#tutorials-java-embedded-bolt