7.SpringBoot整合Neo4j

1.引入依赖

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

 说明:这里引入neo4j的版本跟spring框架的版本有关系。需要注意不同的版本在neo4j的配置上可能存在差异,下面的代码书写上也存在差异。

这里使用的是:

2.配置文件添加配置

spring:data:neo4j:uri: bolt://localhost:7687username: neo4jpassword: 123456

 3.通过java实体创建节点代码

package com.xkj.org.dao;import com.xkj.org.entity.Person;
import org.springframework.data.neo4j.repository.Neo4jRepository;
import org.springframework.stereotype.Repository;@Repository
public interface PersonRepository extends Neo4jRepository<Person, Long> {}
package com.xkj.org.entity;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;import java.io.Serializable;@NodeEntity(label = "person")
@Data
public class Person implements Serializable{@Id@GeneratedValueprivate Long id;@Propertyprivate String name;}
package com.xkj.org;import com.xkj.org.dao.PersonRepository;
import com.xkj.org.entity.Person;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;@SpringBootTest
public class Neo4jApplication {@Autowiredprivate PersonRepository repository;@Testpublic void test() {List<Person> all = repository.findAll();System.out.println(all);}}

4.通过java实体创建关系代码

package com.xkj.org.dao;import com.xkj.org.entity.PersonRelationShip;
import org.springframework.data.neo4j.repository.Neo4jRepository;
import org.springframework.stereotype.Component;@Component
public interface PersonRelationShipRepository extends Neo4jRepository<PersonRelationShip, Long>{}
package com.xkj.org.entity;import lombok.Data;
import org.neo4j.ogm.annotation.*;import java.io.Serializable;@Data
@RelationshipEntity(type = "personRelationShip")
public class PersonRelationShip implements Serializable {@Id@GeneratedValueprivate Long id;@StartNodeprivate Person parent;@EndNodeprivate Person child;@Propertyprivate String relation;}
@Testpublic void test2() {Person p1 = personRepository.findById(70L).orElse(null);Person p2 = personRepository.findById(66L).orElse(null);PersonRelationShip personRelationShip = new PersonRelationShip();personRelationShip.setParent(p1);personRelationShip.setChild(p2);personRelationShip.setRelation("夫妻");personRelationShipRepository.save(personRelationShip);}

5.直接通过cql语句创建关系代码

package com.xkj.org.dao;import com.xkj.org.entity.Person;
import org.springframework.data.neo4j.annotation.Query;
import org.springframework.data.neo4j.repository.Neo4jRepository;
import org.springframework.stereotype.Repository;@Repository
public interface PersonRepository extends Neo4jRepository<Person, Long>{@Query("match (n:person{name:{0}}), (m:person{name:{2}})" +"create (n)-[:人际关系{relation:{1}}]->(m)")void createRelation(String from, String relation, String to);}
@Testpublic void test3() {personRepository.createRelation("小姐姐", "暗恋", "小哥哥");}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/46731.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【java】力扣 买卖股票的最佳时机 动态规划

文章目录 题目链接题目描述思路代码 题目链接 121.买卖股票的最佳时机 题目描述 思路 本题主要用到了动态规划 1.先定义dp数组的含义 先定义一个二维数组dp 然后dp[i][0]来表示第i天持有股票的现金 dp[i][1]代表第i天不持有股票的现金 刚开始的现金为0&#xff0c;当第i天买…

CentOS 7 Web面板的文件管理器说明

在使用CentOS 7 Web Panel&#xff08;CWP7&#xff09;时&#xff0c;偶尔要求在服务器曲面上修改&#xff0c;创建&#xff0c;编辑或删除文件。 最简单&#xff0c;最直接的方式是通过利用CWP7的内置文件管理器。 本文将详细介绍如何启动它&#xff0c;使用它&#xff0c;以…

利用OSMnx进行城市路网数据的速度与通行时间推算及分析

本文还是以广州市路网为例&#xff0c;通过osmmx调用ox.add_edge_speeds(G)时&#xff0c;该函数会遍历图G 中的每条边&#xff08;即每条街道&#xff09;&#xff0c;并基于一些预设的规则或街道属性&#xff08;如街道类型、是否为主要道路、是否有速度限制等&#xff09;来…

Golang | Leetcode Golang题解之第235题二叉搜索树的最近公共祖先

题目&#xff1a; 题解&#xff1a; func lowestCommonAncestor(root, p, q *TreeNode) (ancestor *TreeNode) {ancestor rootfor {if p.Val < ancestor.Val && q.Val < ancestor.Val {ancestor ancestor.Left} else if p.Val > ancestor.Val && q…

十五、【文本编辑器(一)】代码框架

目录 一、QMainWindow基本构成 二、项目框架代码 三、菜单与工具栏的实现 四、总结 一、QMainWindow基本构成 QMainWindow 是一个为用户提供主窗口程序的类&#xff0c;包含一个菜单栏 (menu bar)&#xff0c;多个工具栏(tool bars)&#xff0c;多个锚接部件 (dock widgets…

最新版康泰克完整版- Kontakt v7.10.5 for Win和Mac,支持m芯片和intel,有入库工具

一。世界最受欢迎的采样器的新篇章 Native Instruments Kontakt是采样器领域的标准&#xff0c;您将获得高质量的滤波器&#xff0c;在这里您将找到经典的模拟电路和最现代的滤波器。每一个都可以根据您的口味进行定制&#xff0c;并且由于它&#xff0c;您可以获得前所未有的声…

debian12 允许远程ssh登录

1、查看ssh服务是否在运行 systemctl status ssh 如果没有安装ssh服务&#xff0c;可以通过以下命令安装&#xff1a; apt install openssh-server 如果服务没有运行&#xff0c;通过以下命令重启ssh服务&#xff1a; systemctl restart ssh 2、编辑配置文件 vim /etc/ss…

DROO论文笔记

推荐文章DROO源码及论文学习 读论文《Deep Reinforcement Learning for Online Computation Offloading in Wireless Powered Mobile-Edge Computing Networks》的笔记 论文地址&#xff1a;用于无线移动边缘计算网络在线计算卸载的深度强化学习 论文代码地址&#xff1a;DR…

数组去重(去重+单调栈 用boolen instack来去重

如果存到一个小的就把比它大的都pop出去&#xff0c;在后面还有的情况下&#xff0c;如果后面没有就不pop了 class Solution {public String removeDuplicateLetters(String s) {Stack<Character> stacknew Stack<>();int[] countnew int[256];boolean[] inStackn…

泰迪智能科技江西大数据实验室成功案例介绍说明

高校大数据实验室作为作为支撑高校人培方案实施的核心设施&#xff0c;实验室的建设一定要与学科建设、人才培养充分融合&#xff0c;是一个包含物理空间硬件资源软件资源课程内容的系统化工程。高校在实验室规划过程中&#xff0c;第一要务就是从学科定位出发、结合学校的特色…

14_Shell重定向输入输出

14_Shell重定向输入输出 输出重定向&#xff1a;一般情况&#xff0c;输出是在终端直接显示&#xff0c;改变输出位置&#xff0c;改变到文件中&#xff0c;这就是输出重定向 输入重定向&#xff1a;一般情况&#xff0c;输入是读取用户终端输入&#xff0c;改变输入位置&#…

图解PyTorch中的Transpose操作

在PyTorch中&#xff0c;我们时常会对张量进行转置操作。若张量是二维的&#xff0c;则非常容易理解。若张量维度更高&#xff0c;则会令人摸不到头脑。 高维张量究竟是怎么转置的&#xff1f;简单来说&#xff0c;就是将参与转置的维度抽出来&#xff0c;将内侧的子张量视为一…

【C++PythonJava】字符处理详细解读_字符_ASCLL码_字母数字转换_算法竞赛_开发语言

文章目录 Beginning1&#xff09;ASCLL 码2&#xff09;大小比较2&#xff09;判断数字字符3&#xff09;字符、数字间的相互转换End Beginning 在 C 中&#xff0c;字符和整数有着密不可分的关系。原因就是在计算机中&#xff0c;字符是以一种较 ASCLL 码的整数存储的。自然&…

职业PDF标准 Python 下载器-CSDN

目的 下载技能人才评价网 - 职业技能标准查询系统 - PDF 打包下载 使用文件 a.json 代码解析 import base64 import requests import json import os import time# 读取JSON文件 with open(a.json, r, encodingutf-8) as f:data json.load(f) # 从名为 a.json 的文件中读…

四川蔚澜时代电子商务有限公司领航抖音电商新纪元

在数字化浪潮的推动下&#xff0c;电子商务已成为现代商业发展的重要引擎。四川蔚澜时代电子商务有限公司&#xff0c;凭借对市场的敏锐洞察力和对技术的执着追求&#xff0c;成功在抖音电商领域崭露头角&#xff0c;成为众多电商创业者值得信赖的合作伙伴。 抖音&#xff0c;…

关系数据库:mysql

使用 mysqladmin 删除数据库 关系型数据库的术语&#xff1a; 数据库: 数据库是一些关联表的集合。数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。行&#xff1a;一行&#xff08;元组…

idea双击没有反应,打不开

问题描述 Error opening zip file or JAR manifest missing : /home/IntelliJ-IDEA/bin/jetbrains-agent.jar解决方案

前端路由手写Hash和History两种模式

文章目录 1. Hash模式&#xff1a;简洁而广泛适用2. History模式&#xff1a;更自然的用户体验3. 结论 在现代Web开发中&#xff0c;单页面应用&#xff08;Single Page Application&#xff0c;简称SPA&#xff09;因其流畅的用户体验和高效的页面交互能力而备受青睐。前端路由…

PyTorch人脸识别

新书速览|PyTorch深度学习与企业级项目实战-CSDN博客 一套基本的人脸识别系统主要包含三部分&#xff1a;检测器、识别器和分类器&#xff0c;流程架构如图11-3所示&#xff1a; 图11-5 检测器负责检测图片中的人脸&#xff0c;再将检测出来的人脸感兴趣区域&#xff08;Reg…

第二届大数据、计算智能与应用国际会议(BDCIA2024)

会议日期&#xff1a;2024年11月15-17日 会议地点&#xff1a;中国-湖北省-黄冈市 主办单位&#xff1a;黄冈师范学院 【大会主席】 【主讲嘉宾】 大会邀请到来自美国、英国、加拿大、新加坡、意大利、越南等10余位领域内学术大咖作主题报告&#xff0c;并与参会人员互动交…