Neo4j的Java API操作

Neo4j的Java API操作


在这里插入图片描述


0. 写在前面

  • Linux版本:Ubuntu Kylin 16.04
  • Neo4j版本:Neo4j-3.2.7 Community
  • Project Build Tool:Maven

1、前置芝士

Neo4j的核心概念

  • Label:标签
  • Node:节点,节点可以包含多个标签
  • Relationship:节点与节点之间的关系。关系有始有终,有进有出,从from到to定义节点的关系
  • Properties:属性。每个节点都拥有一个或多个属性

常见的增删改查操作

  • 创建新节点
  • 增加节点间的关系
  • 修改指定属性的值
  • 删除节点
  • 删除节点间的指定关系

2. 准备工作

2.1 为项目引入Neo4j依赖

Maven:引入适合自己的artifactId版本。

<project>
...
 <dependencies>
  <dependency>
   <groupId>org.neo4j</groupId>
   <artifactId>neo4j</artifactId>
   <version>3.2.7</version>
  </dependency>
  ...
 </dependencies>
...
</project>

Eclipse and Maven:

对于此种模式,建议安装m2e插件,让Maven来管理项目的构建classpath。这也为通过Maven的命令行
构建项目提供了可能,同时也为开发提供了一个有效的Eclipse setup 。

2.2 启动和停止

Start

为了启动嵌入式DBMS,需要实例化一个DatabaseManagementService,并获得GraphDatabaseService,如下所示:

managementService = new DatabaseManagementServiceBuilder(databaseDirectory).build();
graphDb = managementService.database(DEFAULT_DATABASE_NAME);
registerShutdownHook(managementService);

如果你打算操作嵌入式集群,那么你应该使用com.neo4j.dbms.api.ClusterDatabaseManagementServiceBuilder来进行适当的配置。出于可维护性的考虑,你可以在neo4j.conf文件中定义你的嵌入式DBMS配置,如下所示。

dbms.mode=CORE
dbms.default_advertised_address=core01.example.com
dbms.default_listen_address=0.0.0.0
causal_clustering.discovery_type=LIST
causal_clustering.initial_discovery_members=core01.example.com,core02.example.com,core03.example.com
dbms.connector.bolt.enabled=true
dbms.connector.http.enabled=true
var managementService = new ClusterDatabaseManagementServiceBuilder( homeDirectory )
    .loadPropertiesFromFile( "/path/to/neo4j.conf" )
    .build();

Stop

为了确保Neo4j能够正常关闭Neo4j,需要申请一个hook,调用shutdown()方法。

public static void registerShutdownHook(final DatabaseManagementService managementService) {
    // Registers a shutdown hook for the Neo4j instance so that it
    // shuts down nicely when the VM exits (even if you "Ctrl-C" the
    // running application).
    Runtime.getRuntime().addShutdownHook(new Thread() {
        @Override
        public void run() {
            managementService.shutdown();
        }
    });
}

3、Java操作Neo4j

代码

import org.neo4j.driver.v1.*;
import static org.neo4j.driver.v1.Values.parameters;
public class Demo {
    public static void main( String[] args ) {
        Driver driver = GraphDatabase.driver( "bolt://localhost:7687", AuthTokens.basic( "neo4j", "neo4j_123456" ) );
        Session session = driver.session();
        session.run( "CREATE (a:Person {name: {name}, title: {title}})",
                parameters( "name", "Arthur001", "title", "King001" ) );

        StatementResult result = session.run( "MATCH (a:Person) WHERE a.name = {name} " +
                        "RETURN a.name AS name, a.title AS title",
                parameters( "name", "Arthur001" ) );
        while ( result.hasNext() )
        {
            Record record = result.next();
            System.out.println( record.get( "title" ).asString() + " " + record.get( "name" ).asString() );
        }
        session.close();
        driver.close();
    }
}

4、参考资料

neo4j

结束!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Neo4j是一个流行的图数据库,它提供了多种语言的接口,包括Java。你可以使用Neo4j Java API来与Neo4j数据库进行交互。 要使用Neo4j Java API,先需要在你的Java项目中添加Neo4j的依赖。你可以在Maven或Gradle等构建工具中添加以下依赖项: Maven: ```xml <dependency> <groupId>org.neo4j.driver</groupId> <artifactId>neo4j-java-driver</artifactId> <version>4.2.3</version> </dependency> ``` Gradle: ``` implementation 'org.neo4j.driver:neo4j-java-driver:4.2.3' ``` 然后,你可以使用以下代码示例来连接到Neo4j数据库并执行一些操作: ```java import org.neo4j.driver.*; public class Neo4jExample { public static void main(String[] args) { // 连接到Neo4j数据库 try (Driver driver = GraphDatabase.driver("bolt://localhost:7687", AuthTokens.basic("username", "password"))) { // 创建会话 try (Session session = driver.session()) { // 执行Cypher查询 Result result = session.run("MATCH (n) RETURN n.name AS name"); // 处理查询结果 while (result.hasNext()) { Record record = result.next(); String name = record.get("name").asString(); System.out.println(name); } } } } } ``` 在上面的示例中,我们使用`GraphDatabase.driver`方法来创建一个驱动程序对象,指定Neo4j数据库的URL以及用户名和密码。然后,我们使用`driver.session`方法创建一个会话对象,并使用`session.run`方法执行Cypher查询。最后,我们遍历查询结果并输出每个节点的名称。 请注意,上述示例仅演示了Neo4j Java API的一小部分功能。你可以通过查阅Neo4j官方文档来获取更多关于Java API的详细信息和示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值