如何使用 java 在 neo4j 中的数据库之间切换
How to switch between databases in neo4j using java
所以我正在使用 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>"
命令创建一个单独的数据库。
但是我想 运行 我的查询跨新创建的数据库。
我可以简单地调用 "session.query("cypher_query_to_insert")"
数据将加载到默认数据库 neo4j。
我们可以使用 :use <database name>
在浏览器中的数据库之间切换。
但是,当 cmd 在 session.query(":use <database_name>")
中时 运行
我收到以下错误:
Data Insertion failed. Cause: org.neo4j.driver.exceptions.ClientException: Invalid input ':': expected (line 1, column 1 (offset: 0))
":use neo4j"
如果有人知道解决方案请告诉我。
创建会话时,可以通过 SessionConfig.Builder
构建的数据库名称传递 SessionConfig
实例:https://neo4j.com/docs/api/java-driver/current/org/neo4j/driver/SessionConfig.Builder.html#withDatabase-java.lang.String-.
所以我正在使用 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>"
命令创建一个单独的数据库。
但是我想 运行 我的查询跨新创建的数据库。
我可以简单地调用 "session.query("cypher_query_to_insert")"
数据将加载到默认数据库 neo4j。
我们可以使用 :use <database name>
在浏览器中的数据库之间切换。
但是,当 cmd 在 session.query(":use <database_name>")
中时 运行
我收到以下错误:
Data Insertion failed. Cause: org.neo4j.driver.exceptions.ClientException: Invalid input ':': expected (line 1, column 1 (offset: 0)) ":use neo4j"
如果有人知道解决方案请告诉我。
创建会话时,可以通过 SessionConfig.Builder
构建的数据库名称传递 SessionConfig
实例:https://neo4j.com/docs/api/java-driver/current/org/neo4j/driver/SessionConfig.Builder.html#withDatabase-java.lang.String-.