Neo4j的Java API操作

2023-05-16

Neo4j的Java API操作

文章目录

  • Neo4j的Java API操作
    • 0. 写在前面
    • 1、前置芝士
    • 2. 准备工作
      • 2.1 为项目引入Neo4j依赖
      • 2.2 启动和停止
    • 3、Java操作Neo4j
    • 4、参考资料


在这里插入图片描述


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

结束!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Neo4j的Java API操作 的相关文章

随机推荐

  • 最优二叉搜索树问题(Java)

    最优二叉搜索树问题 xff08 Java xff09 文章目录 最优二叉搜索树问题 xff08 Java xff09 1 前置介绍2 算法设计思路2 1 最优二叉搜索树的结构2 2 一个递归算法2 3 计算最优二叉搜索树的期望搜索代价 3
  • 大数据量一次性导入MongoDB

    大数据量一次性导入MongoDB 文章目录 大数据量一次性导入MongoDB0 写在前面1 前置芝士2 mongoimport命令导入JSON文件数据失败3 db COLLECTION count 返回值不正确4 数据导入不完全5 参考资料
  • Strassen矩阵乘法问题(Java)

    Strassen矩阵乘法问题 xff08 Java xff09 文章目录 Strassen矩阵乘法问题 xff08 Java xff09 1 前置介绍3 代码实现4 复杂度分析5 参考资料 1 前置介绍 矩阵乘法是线性代数中最常见的问题之一
  • 线性时间选择(Top K)问题(Java)

    线性时间选择 xff08 Top K xff09 问题 xff08 Java xff09 文章目录 线性时间选择 xff08 Top K xff09 问题 xff08 Java xff09 1 前置介绍2 分治法求解3 代码实现4 复杂度分
  • HBase查询一张表的数据条数的方法

    HBase查询一张表的数据条数的方法 文章目录 HBase查询一张表的数据条数的方法0 写在前面1 HBase Shell的count命令2 Scan操作获取数据条数3 执行Mapreduce任务4 Hive与HBase整合5 协处理器Co
  • 校园论坛设计(Java)——介绍篇

    校园论坛设计 xff08 Java xff09 文章目录 校园论坛设计 xff08 Java xff09 0 写在前面1 项目介绍2 项目背景3 项目功能介绍3 1 总体设计图3 2 帖子模块3 3 学习模块3 4 个人信息模块3 5 数据
  • 单源最短路径问题(Java)

    单源最短路径问题 xff08 Java xff09 文章目录 单源最短路径问题 xff08 Java xff09 1 问题描述2 算法思路3 代码实现4 算法正确性和计算复杂性4 1 贪心选择性质4 2 最优子结构性质4 3 计算复杂性 5
  • 回溯法(Java)

    回溯法 xff08 Java xff09 文章目录 回溯法 xff08 Java xff09 1 引言2 回溯法2 1 定义2 2 使用场合2 3 基本做法2 4 具体做法2 5 常见例子 3 比较4 问题的解空间4 1 介绍4 2 解空间
  • 校园论坛(Java)——环境配置篇

    校园论坛 Java 环境配置篇 文章目录 校园论坛 Java 环境配置篇 1 写在前面 2 新建Maven项目 2 1 引入相关依赖 2 2 配置Tomcat环境 3 项目发布测试 4 项目代码 5 参考资料 1 写在前面 Windows版
  • 校园论坛(Java)—— 帖子模块

    校园论坛 Java 帖子模块 文章目录 校园论坛 Java 帖子模块 1 写在前面 2 系统结构设计 2 1 各个页面之间的调用关系 2 2 普通帖子中各层的设计 3 用户浏览普通帖子功能的实现 3 1 帖子发布和查看以及回复功能系统 3
  • android -- 蓝牙 bluetooth (二) 打开蓝牙

    4 2的蓝牙打开流程这一部分还是有些变化的 xff0c 从界面上看蓝牙开关就是设置settings里那个switch开关 xff0c widget开关当然也可以 xff0c 起点不同而已 xff0c 后续的流程是一样的 先来看systemS
  • 校园论坛(Java)—— 登录注册和用户信息模块

    校园论坛 Java 登录注册和用户信息模块 文章目录 校园论坛 Java 登录注册和用户信息模块 1 写在前面 2 系统结构设计 2 1 各个页面之间的调用关系 2 2 登录注册模块各层的设计 3 登录注册模块设计 3 1 用户注册功能 3
  • 校园论坛(Java)—— 考研学习模块

    校园论坛 Java 考研学习模块 文章目录 校园论坛 Java 考研学习模块 1 写在前面 2 系统结构设计 2 1 各个页面之间的调用关系 2 2 登录注册模块各层的设计 3 考研学习模块设计 3 1 浏览和查看帖子 3 2 发表帖子 3
  • 校园论坛(Java)—— 用户管理系统模块

    校园论坛 Java 用户管理系统模块 文章目录 校园论坛 Java 用户管理系统模块 toc 1 写在前面 2 系统结构设计 2 1 各个页面之间的调用关系 2 2 用户管理系统模块各层的设计 3 管理员管理用户功能 3 1 管理员查看普通
  • 校园论坛(Java)—— 数据报表模块

    校园论坛 Java 数据报表模块 文章目录 校园论坛 Java 数据报表模块 1 写在前面 2 系统结构设计 2 1 各个页面之间的调用关系 2 2 代码实现 3 数据报表设计 3 1 数据报表主界面的实现 3 2 发表数Top5的普通帖子
  • 校园论坛(Java)—— 校园周边模块

    校园论坛 Java 校园周边模块 文章目录 校园论坛 Java 校园周边模块 1 写在前面 2 系统结构设计 2 1 各个页面之间的调用关系 2 2 校园周边页面设计 3 校园周边模块设计 3 1 校园周边主界面的实现 3 2 增加附近的交
  • 校园论坛(Java)—— 结束篇

    校园论坛 Java 结束篇 文章目录 校园论坛 Java 结束篇 1 写在前面 2 系统总体设计 2 1 设计流程 2 2 各个页面之间的调用关系 3 系统实现的可行性 4 系统制作的局限性 5 总结 6 项目代码 1 写在前面 Windo
  • Windows远程连接Redis(Linux)

    Windows远程连接Redis xff08 Linux xff09 文章目录 Windows远程连接Redis xff08 Linux xff09 1 写在前面2 配置redis conf3 启动Redis3 1 开启redis服务3 2
  • 批量数据导入Neo4j的方式

    批量数据导入Neo4j的方式 文章目录 批量数据导入Neo4j的方式1 写在前面2 前置芝士3 CSV数据导入Neo4j3 1 LOAD CSV Cypher命令3 2 neo4j admin命令3 3 Kettle导入工具 4 数据导入失
  • Neo4j的Java API操作

    Neo4j的Java API操作 文章目录 Neo4j的Java API操作0 写在前面1 前置芝士2 准备工作2 1 为项目引入Neo4j依赖2 2 启动和停止 3 Java操作Neo4j4 参考资料 0 写在前面 Linux版本 xff