当前位置: 首页 > 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("小姐姐", "暗恋", "小哥哥");}

http://www.lryc.cn/news/403299.html

相关文章:

  • 教室管理系统的开发与实现(Java+MySQL)
  • Go的入门
  • windows中使用Jenkins打包,部署vue项目完整操作流程
  • RocketMQ中概念知识点记录 和 与SpringBoot集成实现发送 同步、异步、延时、批量、tag、key、事务消息等
  • 云计算实训09——rsync远程同步、自动化推取文件、对rsyncd服务进行加密操作、远程监控脚本
  • 【DGL系列】DGLGraph.out_edges简介
  • 掌握品质之钥:ISO9001质量管理体系认证的巨大价值
  • 网络开局 与 Underlay网络自动化
  • MySQL MVCC原理
  • 编织文字的魔法:探索WebKit的CSS文本效果
  • 如何在Linux上部署Ruby on Rails应用程序
  • 极狐GitLab 如何管理 PostgreSQL 扩展?
  • SpringBoot如何使用Kafka来优化接口请求的并发
  • 全面了解不同GPU算力型号的价格!
  • Linux网络编程之UDP
  • graham 算法计算平面投影点集的凸包
  • 【海外云手机】静态住宅IP集成解决方案
  • 最新!CSSCI(2023-2024)期刊目录公布!
  • C语言 | Leetcode C语言题解之第237题删除链表中的节点
  • linux LED代码设计
  • Jvm基础(一)
  • 深入理解FFmpeg--软/硬件解码流程
  • 新的铸造厂通过 PROFIBUS 技术实现完全自动化
  • 【UE5.1】NPC人工智能——04 NPC巡逻
  • 计算机视觉主流框架及其应用方向
  • 群晖 搭建alist 记录
  • 【北航主办丨本届SPIE独立出版丨已确认ISSN号】第三届智能机械与人机交互技术学术会议(IHCIT 2024,7月27)
  • 深入浅出WebRTC—NACK
  • 简单工厂模式、工厂模式和抽象工厂模式的区别
  • JVM-垃圾回收与内存分配