【Springboot集成Neo4j完整版教程】

news/2024/7/7 18:50:27

在这里插入图片描述

🚀 Neo4j 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 Neo4j 🚀

在这里插入图片描述
在这里插入图片描述

🍔 目录

    • 🌟 知识回顾
    • 🌟 Spring Data Neo4j官方指导手册
    • 🌟 Docker启动Neo4j
    • 🌟 Spring Boot集成Neo4J配置信息
      • 🍤 新创建一个SpringBoot项目![](https://img-blog.csdnimg.cn/e3a461d13b524c0fa968a3d3dc8de763.png)
      • 🍤 导入spring-boot-starter-data-neo4j依赖
      • 🍤 配置neo4j相关的连接信息
    • 🌟 Spring Boot集成Neo4J案例实操
      • 🍤 创建对应的Person实体信息
      • 🍤 创建对应的Repository接口
      • 🍤 创建节点访问测试
    • 🌟 Spring Boot集成Neo4J案例实操2
      • 🍤 创建对应的PersonRelation实体信息
      • 🍤 Person实体中增加对应的构造方法
      • 🍤 创建对应的PersonRelationRepository接口
      • 🍤 创建节点访问测试
    • 🌟 总结
    • 💬 共勉

🌟 知识回顾

大家根据自己情况的情况自行选择之前的文章进行学习

【Docker安装部署Neo4j保姆级教程】
【使用Neo4j进行图数据可视化】
【Neo4j教程之CQL命令基本使用】
【Neo4j教程之CQL函数基本使用】

🌟 Spring Data Neo4j官方指导手册

Spring Data Neo4j官方指导手册

第一步进入Spring官方,选择SpringData模块
在这里插入图片描述

第二步选择Spring Data Neo4j
在这里插入图片描述
第三步查看Spring Data Neo4j指导手册相关的内容
在这里插入图片描述

🌟 Docker启动Neo4j

注意:此处我们直接通过Docker来启动Neo4j,前面的教程中也有,不会的同学可以先去学习

docker start neo4j 

在这里插入图片描述

🌟 Spring Boot集成Neo4J配置信息

🍤 新创建一个SpringBoot项目

🍤 导入spring-boot-starter-data-neo4j依赖

添加对应的依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-neo4j</artifactId>
</dependency>

🍤 配置neo4j相关的连接信息

添加对应的配置文件

spring.data.neo4j.uri= bolt://localhost:7687
spring.data.neo4j.username=neo4j
spring.data.neo4j.password=123456

🌟 Spring Boot集成Neo4J案例实操

🍤 创建对应的Person实体信息

import lombok.Data;
import org.neo4j.ogm.annotation.GeneratedValue;
import org.neo4j.ogm.annotation.Id;
import org.neo4j.ogm.annotation.NodeEntity;
import org.neo4j.ogm.annotation.Property;

/**
 * 创作一个对应 Person 实体对象 -> 对应我们 Neo4j数据库中的 Node 对象
 */
@Data
@NodeEntity("Person")
public class Person {

    @Id
    @GeneratedValue
    private Long id;

    @Property
    private String name;
}

🍤 创建对应的Repository接口

import entity.Person;
import org.springframework.data.neo4j.repository.Neo4jRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface PersonRepository extends Neo4jRepository<Person,Long> {
}

🍤 创建节点访问测试

代码案例

import dao.PersonRepository;
import entity.Person;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class SpringbootNeo4jApplicationTests {

    @Autowired
    private PersonRepository personRepository;

    @Test
    void contextLoads() {
        Person person = new Person();
        person.setName("硕风和炜");
        personRepository.save(person);
    }
}

访问测试
在这里插入图片描述

🌟 Spring Boot集成Neo4J案例实操2

🍤 创建对应的PersonRelation实体信息

import lombok.Data;
import org.neo4j.ogm.annotation.*;

import java.io.Serializable;

@Data
@RelationshipEntity(type = "徒弟")
public class PersonRelation implements Serializable {

    @Id
    @GeneratedValue
    private Long id;

    @StartNode
    private Person parent;

    @EndNode
    private Person child;

    @Property
    private String relation;

    public PersonRelation(Person parent, Person child, String relation) {
        this.parent = parent;
        this.child = child;
        this.relation = relation;
    }
}

🍤 Person实体中增加对应的构造方法

import lombok.Data;
import org.neo4j.ogm.annotation.GeneratedValue;
import org.neo4j.ogm.annotation.Id;
import org.neo4j.ogm.annotation.NodeEntity;
import org.neo4j.ogm.annotation.Property;

/**
 * 创作一个对应 Person 实体对象 -> 对应我们 Neo4j数据库中的 Node 对象
 */
@Data
@NodeEntity("Person")
public class Person {

    @Id
    @GeneratedValue
    private Long id;

    @Property
    private String name;

    @Property
    private Integer age;

    public Person() {
    }

    public Person(String name, Integer age) {
        this.name = name;
        this.age = age;
    }
}

🍤 创建对应的PersonRelationRepository接口

import com.ljw.springboot.neo4j.entity.PersonRelation;
import org.springframework.data.neo4j.repository.Neo4jRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface PersonRelationRepository extends Neo4jRepository<PersonRelation,Long> {

}

🍤 创建节点访问测试

代码案例

import com.ljw.springboot.neo4j.dao.PersonRelationRepository;
import com.ljw.springboot.neo4j.dao.PersonRepository;
import com.ljw.springboot.neo4j.entity.Person;
import com.ljw.springboot.neo4j.entity.PersonRelation;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class SpringbootNeo4jApplicationTests {

    @Autowired
    private PersonRelationRepository personRelationRepository;

    @Test
    void nodeRelation(){
        Person p1 = new Person("唐僧",4321);
        Person p2 = new Person("孙悟空",3421);
        Person p3 = new Person("猪八戒",2413);
        Person p4 = new Person("沙僧",1234);

        PersonRelation pr1 = new PersonRelation(p1,p2,"徒弟");
        PersonRelation pr2 = new PersonRelation(p1,p3,"徒弟");
        PersonRelation pr3 = new PersonRelation(p1,p4,"徒弟");

        personRelationRepository.save(pr1);
        personRelationRepository.save(pr2);
        personRelationRepository.save(pr3);

    }

}

访问测试
在这里插入图片描述

🌟 总结

本文展示了如何使用Neo4J和Spring Boot整合,如何在Spring Boot应用程序中使用Neo4J数据库来持久化数据、使用CQL语言进行高效的查询操作,并提供了一个非常简单的例子以演示如何使用Neo4J数据库。相信通过本文的学习,读者已经掌握了如何使用Neo4J和Spring Boot整合,并且具备将此应用于实际项目的能力。

💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述


http://lihuaxi.xjx100.cn/news/1269725.html

相关文章

【VC 7/8】vCenter Server 更新(小版本升级)Ⅱ—— 使用 Shell 命令行更新 vCenter Server

目录 2. 使用 Shell 升级 vCenter Server&#xff08;1&#xff09;下载更新 ISO 镜像&#xff08;2&#xff09;挂载 ISO 镜像&#xff08;3&#xff09;验证 ISO 镜像已被挂载通过VAMI 更新界面将ISO 挂载到 VC 的文件系统 &#xff08;4&#xff09;更新 VC | 安装 vCenter …

nginx主配置文件及实操

文章目录 一、nginx主配置文件nginx.conf1.认识nginx服务的主配置文件2.全局配置3.I/O事件配置4.HTTP配置&#xff15;.检查配置文件是否正确&#xff16;.浏览器测试 二、实战操作1.nginx的访问状态统计2.基于授权的访问控制&#xff1a;3.基于客户端访问设置&#xff08;设置…

短视频矩阵源码开发部署技术解析

短视频矩阵源码开发涉及到多个方面的技术&#xff0c;包括但不限于以下几点&#xff1a; 抖yinAPI&#xff1a;需要通过API获取抖音的视频、用户、评论、点赞等数据。 抖yinSDK&#xff1a;如果需要开发一些原生的功能&#xff0c;比如分享、登录、支付等&#xff0c;需要使用…

lnmp框架的应用

目录 应用一 nginx访问状态统计 1.先查看http_stub_status有没有安装 2.进入nginx的配置文件改配置 3.nginx-检查配置 重启服务 最后这个20就是显示的状态统计 应用二 给网站加密 1.首先安装http-tools软软件 2.把nginx设置锁也要有执行权限 3.进入nginx配置文件 4. 检查…

轻量级的深度学习框架Tinygrad

Tinygrad是一个轻量级的深度学习库&#xff0c;它提供了一种简化和直观的方法来理解和实现神经网络。在本文中&#xff0c;我们将探讨Tinygrad及其主要功能&#xff0c;以及它如何成为那些开始深度学习之旅的人的有价值的工具。 什么是Tinygrad? Tinygrad是一个开源的深度学习…

夜不收见证:夫妻从内江到成都,从真诚到真相

他们从四川内江的一条小巷&#xff0c;走进了成都的大街小巷。那里的房屋挨挨挤挤&#xff0c;像是在讲述他们曾经的梦想和勇气。他们是那些在内江的土地上种下了友情种子的少年&#xff0c;他们在成都的大地上&#xff0c;硕果累累。 他们从初中的课桌前走到了成人的世界里&am…

python---案例分析(2)

例5: 使用python生成一个二维码 结果就会显示一个二维码!拿出手机扫描二维码就可以看到make中填写的内容! 例6: 操作excel 使用python计算平均分的情况 首先在自己的pycharm上安装xlrd 必须是上述版本的 安装成功版本后,import一下即可使用 以下是计算100班的平均分 例6: …

【五子棋实战】第4章 部署五子棋计算接口到Window、Linux上

【五子棋实战】第4章 部署五子棋计算接口到Window、Linux上 python项目打包成exe可执行文件 ## 步骤一、安装pyinsatller ## 步骤二、使用pyinstaller打包Python程序 ## 操作演示 ## 注意事项&#xff01;&#xff01; python的Flask接口部署&#xff08;Linux&#xff09; ##…