分发
驱动模块和依赖
驱动由 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 分发。这些捆绑包具有不同特性:根据您的使用场景或环境,您可以选择其中一个捆绑包,但不能同时使用两个。
| 所有 Neo4j JDBC 驱动的发行版和功能都兼容 GraalVM 本地镜像。 |
单独组件
如果您的应用程序使用适当的依赖管理,且无需自行处理单个构件及其依赖,请选择此发行版。
我们提供一个 Maven BOM 项目,使用单独模块时应导入它,以保持版本一致。坐标为 org.neo4j:neo4j-jdbc-bom。 |
对于 Maven,请使用以下依赖声明
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-jdbc</artifactId>
<version>6.9.1</version>
</dependency>
对于 Gradle,您需要声明以下运行时依赖
dependencies {
runtimeOnly 'org.neo4j:neo4j-jdbc:6.9.1'
}
如果您想使用 Neo4j 的 SQL 到 Cypher 翻译,需要在 Maven 构建中添加以下依赖
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-jdbc-translator-impl</artifactId>
<version>6.9.1</version>
</dependency>
对于 Gradle 则使用相同的坐标
dependencies {
runtimeOnly 'org.neo4j:neo4j-jdbc-translator-impl:6.9.1'
}
小捆绑包
如果您使用 ETL 工具或关系数据库工具,仅能以单个制品形式或难以添加额外 JAR 的方式添加 JDBC 驱动,请选择此发行版。此捆绑包不包含默认的 SQL 到 Cypher 翻译器!该捆绑包的坐标为 org.neo4j:neo4j-jdbc-bundle,可从 Maven Central 下载
| 所有捆绑包也可以作为普通项目依赖使用。例如,当您的项目依赖于不同的、可能冲突的 Netty 版本时,这会很有用。 |
完整捆绑包
此捆绑包包含默认的 SQL 到 Cypher 翻译器。除此之外,它与 小捆绑包 完全相同。坐标为 org.neo4j:neo4j-jdbc-full-bundle,可在此处从 Maven Central 下载