从 Java 使用 Neo4j

如果您是 Java 开发人员,本指南概述了连接到 Neo4j 的选项。虽然本指南并不全面,但它介绍了不同的 API 并链接到相关资源。

您应该熟悉 图数据库概念 和属性图模型。您应该已经 创建了 Neo4j AuraDB 云实例在本地安装了 Neo4j

在使用 Neo4j 5.x 进行开发时,请使用 Java 17 和您首选的 IDE。

5.x 驱动程序系列需要 Java 17。有关更多详细信息,请参阅 Neo4j Java 驱动程序手册

Neo4j for Java 开发人员

Neo4j 提供了驱动程序,您可以使用这些驱动程序连接到数据库并开发创建、读取、更新和删除图中信息的应用程序。

对于社区版和企业版,您还可以通过使用 Java 或其他 JVM 语言实现 Cypher® 用户定义过程 来扩展 Neo4j。

示例项目

Neo4j 示例项目是一个小型、单页 Web 应用程序,用于构建到 Neo4j 教程中的电影数据库。前端页面对于所有驱动程序都是相同的:电影搜索、电影详细信息以及演员和电影的图可视化。每个后端实现都向您展示如何从不同的语言和驱动程序连接到 Neo4j。

您可以通过 此处 了解更多关于我们跨许多不同语言驱动程序的小型、一致的示例项目的信息。您将找到所有驱动程序的实现,作为 单独的 GitHub 存储库,您可以克隆并直接部署这些存储库。

Neo4j Java 驱动程序

Neo4j Java 驱动程序由 Neo4j 正式支持,并使用二进制协议连接到数据库。它旨在保持最小化,同时符合 Java 的习惯用法。我们支持 5.x 驱动程序系列的 Java 17。

在使用 Maven 时,请将此添加到您的 pom.xml 文件中

<groupId>org.neo4j.driver</groupId>
<artifactId>neo4j-java-driver</artifactId>
<version>5.22.0</version>

对于 Gradle 或 Grails,添加依赖项的方式如下

compile 'org.neo4j.driver:neo4j-java-driver:5.22.0'

对于其他构建系统,请参阅 Maven Central 上提供的信息

import org.neo4j.driver.AuthTokens;
import org.neo4j.driver.Driver;
import org.neo4j.driver.GraphDatabase;
import org.neo4j.driver.Query;

import static org.neo4j.driver.Values.parameters;

public class HelloWorldExample implements AutoCloseable {
    private final Driver driver;

    public HelloWorldExample(String uri, String user, String password) {
        driver = GraphDatabase.driver(uri, AuthTokens.basic(user, password));
    }

    @Override
    public void close() throws RuntimeException {
        driver.close();
    }

    public void printGreeting(final String message) {
        try (var session = driver.session()) {
            var greeting = session.executeWrite(tx -> {
                var query = new Query("CREATE (a:Greeting) SET a.message = $message RETURN a.message + ', from node ' + id(a)", parameters("message", message));
                var result = tx.run(query);
                return result.single().get(0).asString();
            });
            System.out.println(greeting);
        }
    }

    public static void main(String... args) {
        try (var greeter = new HelloWorldExample("bolt://localhost:7687", "neo4j", "password")) {
            greeter.printGreeting("hello, world");
        }
    }
}

驱动程序配置

从 Neo4j 版本 4.0 开始,默认加密设置是 关闭,Neo4j 不再生成自签名证书。这适用于默认安装、通过 Neo4j 桌面和 Docker 映像的安装。您可以通过检查 neo4j.conf 中的 dbms.connector.bolt.enabled 密钥来 验证服务器的加密级别

表 1. 表格方案用法
证书类型 Neo4j 集群 Neo4j 独立服务器 直接连接到集群成员

未加密

neo4j

neo4j

bolt

使用完整证书加密

neo4j+s

neo4j+s

bolt+s

使用自签名证书加密

neo4j+ssc

neo4j+ssc

bolt+ssc

Neo4j AuraDB

neo4j+s

N/A

N/A

在投入生产时,请查看您的 SSL 框架设置。如有必要,您也可以 使用 Letsencrypt 为 Neo4j 生成证书

名称

版本

作者

neo4j-java-driver

5.22.0

Neo4j 团队

示例

Neo4j 在线社区

文档

API

源代码