如何使用java在neo4j中切换数据库



所以我使用neo4j-enterprise加载docker的版本。

version: '3'
services:
neo4j:
image: neo4j:4.3.2-enterprise
hostname: neo4j
container_name: neo4j
ports:
- "7474:7474"
- "7687:7687"
environment:
- NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
- NEO4J_dbms_memory_heap_maxSize=1G
- NEO4JLABS_PLUGINS=["apoc"]
- NEO4J_AUTH=neo4j/test
- NEO4J_apoc_import_file_enabled=true
- NEO4J_dbms_security_procedures_whitelist= apoc.*
- NEO4J_dbms_security_procedures_unrestricted= apoc.*

我正在使用螺栓驱动器连接neo4j。

public Neo4jSessionFactory(@ConfigProperty(name = "quarkus.neo4j.uri")String databaseUri,
@ConfigProperty(name = "quarkus.neo4j.authentication.username")String username,
@ConfigProperty(name = "quarkus.neo4j.authentication.password")String password) {
Configuration neoConfig = new Configuration.Builder().uri(databaseUri**{bolt://localhost:7687}**).credentials(username, password)
.useNativeTypes().build();
sessionFactory = new SessionFactory(neoConfig, PACKAGES);
LOGGER.info("Connection with Neo4j is successful");
}

我可以使用"CREATE DATABASE <name>"cmd创建一个单独的数据库。

然而,我想在新创建的数据库中运行我的查询。我可以简单地调用"session.query("cypher_query_to_insert")",数据将被加载到默认数据库neo4j。我们可以使用:use <database name>在浏览器中切换数据库。但是,当cmd在session.query(":use <database_name>")内运行时我得到以下错误:

数据插入失败。原因:org.neo4j.driver.exceptions。ClientException:无效输入':':预期(第1行,第1列(偏移量:0))":使用neo4j"

如果有人知道解决办法,请告诉我。

当你创建一个会话,你可以传递一个SessionConfig实例与数据库名称,通过SessionConfig.Builder: https://neo4j.com/docs/api/java-driver/current/org/neo4j/driver/SessionConfig.Builder.html#withDatabase-java.lang.String-构建。

最新更新