当前位置: 首页 > news >正文

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("小姐姐", "暗恋", "小哥哥");}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python求均值,方差,标准差
  • 【运维】软件运维方案(2024word完整版)
  • 减分兔搜题-12123学法减分20题目及答案 #媒体#职场发展
  • 排序系列 之 快速排序
  • Mybatis plus自定义分页
  • hive动态分区导致xceivercount超限,hdfs无法创建新连接
  • R语言实现神经网络ANN
  • 从微软发iPhone,聊聊企业设备管理
  • 【机器学习】无监督学习和自监督学习
  • Kafka(四) Consumer消费者
  • 大鲸鱼docker-compose单机容器集群编排工具
  • C语言实例-约瑟夫生者死者小游戏
  • jenkins 插件版本冲突
  • JDBC常见用法
  • 下载安装VSCode并添加插件作为仓颉编程入门编辑器
  • [PHP内核探索]PHP中的哈希表
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 〔开发系列〕一次关于小程序开发的深度总结
  • CSS相对定位
  • emacs初体验
  • ES6系统学习----从Apollo Client看解构赋值
  • EventListener原理
  • Java面向对象及其三大特征
  • react-native 安卓真机环境搭建
  • SegmentFault 2015 Top Rank
  • Shell编程
  • Vue学习第二天
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 解析 Webpack中import、require、按需加载的执行过程
  • 利用jquery编写加法运算验证码
  • 聊聊redis的数据结构的应用
  • 前端工程化(Gulp、Webpack)-webpack
  • 如何解决微信端直接跳WAP端
  • 山寨一个 Promise
  • 十年未变!安全,谁之责?(下)
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 协程
  • 新版博客前端前瞻
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 追踪解析 FutureTask 源码
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • #HarmonyOS:软件安装window和mac预览Hello World
  • $forceUpdate()函数
  • (03)光刻——半导体电路的绘制
  • (27)4.8 习题课
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (PySpark)RDD实验实战——取最大数出现的次数
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • .Net 6.0--通用帮助类--FileHelper
  • .NET Micro Framework 4.2 beta 源码探析