繁体   English   中英

使用Neo4j嵌入式数据库和JDBC Bolt驱动程序进行Spring Boot测试

[英]Spring Boot Test using Neo4j embedded database with JDBC Bolt driver

是否可以像使用H2内存数据库模拟Oracle数据库一样连接到嵌入式Neo4j数据库?

我试图做到这一点:

final BoltConnector boltConnector = new BoltConnector("bolt");
graphDb = new GraphDatabaseFactory()
        .newEmbeddedDatabaseBuilder(DB_PATH)
        .setConfig(boltConnector.type, BOLT.name())
        .setConfig(boltConnector.enabled, TRUE)
        .setConfig(boltConnector.listen_address, listenAddress("127.0.0.1", 7688))
        .setConfig(boltConnector.encryption_level, DISABLED.name())
        .setConfig(GraphDatabaseSettings.auth_enabled, FALSE)
        .newGraphDatabase();

然后使用具有以下spring.datasource配置的JDBC Bolt驱动程序发出请求:

spring:
  profiles: test
  datasource:
    driver-class-name: org.neo4j.jdbc.bolt.BoltDriver
    url: jdbc:neo4j:bolt://127.0.0.1:7688/?nossl

但是我总是收到以下错误:

Unable to connect to 127.0.0.1:7688, ensure the database is running and that there is a working network connection to it.

当然,当我使用graphDb实例并对它执行请求时,嵌入式数据库就可以工作。 但是我希望我的应用程序像连接到远程Neo4j数据库一样,连接到嵌入式数据库。 这是出于测试目的。

我终于RTFM ...
我的pom.xml具有以下依赖项:

<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j</artifactId>
    <version>3.4.0</version>
</dependency>

然后我发现了这一点: https : //neo4j.com/docs/java-reference/current/tutorials-java-embedded/#tutorials-java-embedded-bolt该文档有些过时了,因为它使用了已弃用的配置。 但是他们解释了这一点:

Neo4j浏览器和官方的Neo4j驱动程序使用Bolt数据库协议与Neo4j进行通信。 默认情况下,Neo4j Embedded不公开Bolt连接器,但是您可以启用它。 这样可以将服务Neo4j Browser连接到嵌入式实例。

他们明确指出要使用的正确依赖项是:

<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j-bolt</artifactId>
    <version>3.4.0</version>
</dependency>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM