分发
驱动程序模块和依赖项
驱动程序包含 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 基线或许可模块
-
允许你创建替代翻译器
依赖项
有两个“无依赖项”模块,它们将所有内容都屏蔽到一个二进制工件中。这些捆绑包涵盖了许多工具(参见 可用的捆绑包)。
驱动程序的直接编译时依赖项列在下面
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,请使用此依赖项声明
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-jdbc</artifactId>
<version>6.0.0</version>
</dependency>
对于 Gradle,你想要声明以下运行时依赖项
dependencies {
runtimeOnly 'org.neo4j:neo4j-jdbc:6.0.0'
}
如果你想使用来自 Neo4j 的 SQL 到 Cypher 翻译,你需要在你的 Maven 构建中添加以下依赖项
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-jdbc-translator-impl</artifactId>
<version>6.0.0</version>
</dependency>
以及相同的坐标,但用于 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 下载它