分发

驱动程序模块和依赖项

驱动程序包含 3 个模块

neo4j-jdbc

这是 Neo4j 的实际 JDBC 实现

neo4j-jdbc-translator-spi

这是默认 SQL 到 Cypher 翻译实现以及任何进一步或自定义实现的 SPI。

neo4j-jdbc-translator-impl

这是 SQL 到 Cypher 翻译器的默认和可选实现。它提供了一种有些主观的将 SQL 语句翻译成语义上等效的 Cypher 语句的方法。

如果你只想使用 Neo4j JDBC 驱动程序来运行 Cypher® 语句,你只需要 org.neo4j:neo4j-jdbc 模块。只要你在具有适当依赖项管理的环境中开发,这就是你所需要声明的全部内容。

虽然翻译器 SPI 是必需的依赖项,并通过 Maven 或 Gradle 拉入,但实际的实现并不是。这允许

  • 如果你不需要 SQL 到 Cypher 翻译,则选择不使用额外的依赖项

  • 对我们的实现需要不同的 JDK 基线或许可模块

  • 允许你创建替代翻译器

依赖项

有两个“无依赖项”模块,它们将所有内容都屏蔽到一个二进制工件中。这些捆绑包涵盖了许多工具(参见 可用的捆绑包)。

驱动程序的直接编译时依赖项列在下面

清单 1. 核心驱动程序的依赖项树
org.neo4j:neo4j-jdbc
+- io.github.cdimascio:dotenv-java
+- io.netty:netty-handler
|  +- io.netty:netty-common
|  +- io.netty:netty-resolver
|  +- io.netty:netty-buffer
|  +- io.netty:netty-transport
|  +- io.netty:netty-transport-native-unix-common
|  \- io.netty:netty-codec
+- org.neo4j:neo4j-cypher-dsl-schema-name-support
+- org.neo4j:neo4j-jdbc-translator-spi

可用的捆绑包

Neo4j JDBC 驱动程序的所有捆绑包都分布在 Maven Central 上。这些捆绑包具有不同的特性:根据你的用例或环境,你可以选择其中一个或另一个捆绑包,但不能同时选择两个。

单个组件

如果你有一个使用依赖项管理的应用程序,其中你不必自己处理二进制工件,请选择此分发版。

我们提供一个 Maven BOM 项目,你应该在使用单个模块时导入它,这样你始终可以获得一致的版本集。坐标为 org.neo4j:neo4j-jdbc-bom

对于 Maven,请使用此依赖项声明

清单 2. 核心 Neo4j JDBC 驱动程序工件的 Maven 依赖项
<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j-jdbc</artifactId>
    <version>6.0.0</version>
</dependency>

对于 Gradle,你想要声明以下运行时依赖项

清单 3. Neo4j JDBC 驱动程序作为 Gradle 运行时依赖项
dependencies {
    runtimeOnly 'org.neo4j:neo4j-jdbc:6.0.0'
}

如果你想使用来自 Neo4j 的 SQL 到 Cypher 翻译,你需要在你的 Maven 构建中添加以下依赖项

清单 4. 默认 SQL 到 Cypher 翻译器的 Maven 依赖项
<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j-jdbc-translator-impl</artifactId>
    <version>6.0.0</version>
</dependency>

以及相同的坐标,但用于 Gradle

清单 5. 默认 SQL 到 Cypher 翻译器的 Gradle 依赖项
dependencies {
    runtimeOnly 'org.neo4j:neo4j-jdbc-translator-impl:6.0.0'
}

小型捆绑包

如果你使用 ETL 工具或用于关系数据库的工具,这些工具允许仅添加 JDBC 驱动程序作为单个工件,或者使添加其他 jar 变得非常困难,请选择此分发版。此捆绑包不包含默认的 SQL 到 Cypher 翻译器!此捆绑包的坐标为 org.neo4j:neo4j-jdbc-bundle,你可以从 Maven Central 下载它

所有捆绑包都可以用作正常的项目依赖项。例如,如果你的项目依赖于不同的、可能冲突的 Netty 版本,这可能很有用。

完整捆绑包

此捆绑包包含默认的 SQL 到 Cypher 翻译器。否则,它与小型捆绑包相同。它的坐标为 org.neo4j:neo4j-jdbc-full-bundle,你可以从 Maven Central 下载它

text2cypher 捆绑包

我们还提供了一个非常实验性的捆绑包,我们称之为 text2cypher

参见 text2cypher 更多信息。