springboot neo4j开发

本文记录了一次使用Neo4j图数据库进行项目开发的过程,详细描述了从引入依赖、配置数据库到处理业务的踩坑经历,包括如何避免数据重复新增,以及面对查询结果处理方式的调整,由于前端需求,原本打算采用JSON嵌套结构表示节点关系,但最终因内容过多导致无法联调而作调整。

记一次这个图数据库遇到的坑,因为项目中要用到血缘关系,技术选型用到这个,然后各种踩坑填坑

首先引入pom文件

<!-- neo4j pom文件 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-neo4j</artifactId>
</dependency>
<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j-ogm-http-driver</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-neo4j</artifactId>
    <version>5.3.2.RELEASE</version>
</dependency>

配置文件配置用户名密码

spring.data.neo4j.uri=bolt://192.168.1.181:7687
spring.data.neo4j.username=neo4j
spring.data.neo4j.password=neo4j@1234

实体类

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@RelationshipEntity(type = "ship")
public class Neo4jRelationship {

    @Id
    @GeneratedValue
以下是使用Spring Boot和Neo4j开发知识图谱的步骤: 1. 在项目中添加Spring Boot和Neo4j的依赖,可以在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-neo4j</artifactId> </dependency> <dependency> <groupId>org.neo4j</groupId> <artifactId>neo4j-ogm-http-driver</artifactId> <version>3.2.11</version> </dependency> ``` 2. 配置Neo4j数据库连接信息,可以在application.properties文件中添加以下配置: ``` spring.data.neo4j.uri=bolt://localhost:7687 spring.data.neo4j.username=neo4j spring.data.neo4j.password=123456 ``` 3. 创建实体类,可以使用@NodeEntity注解将Java类映射为Neo4j中的节点,例如: ```java @NodeEntity(label = "Person") public class Person { @Id @GeneratedValue private Long id; private String name; private int age; // 省略getter和setter方法 } ``` 4. 创建Repository接口,可以继承Neo4jRepository接口,例如: ```java public interface PersonRepository extends Neo4jRepository<Person, Long> { List<Person> findByName(String name); } ``` 5. 在Service中编写业务逻辑,例如: ```java @Service public class PersonService { @Autowired private PersonRepository personRepository; public List<Person> findByName(String name) { return personRepository.findByName(name); } public Person save(Person person) { return personRepository.save(person); } } ``` 6. 在Controller中编写接口,例如: ```java @RestController @RequestMapping("/person") public class PersonController { @Autowired private PersonService personService; @GetMapping("/findByName") public List<Person> findByName(String name) { return personService.findByName(name); } @PostMapping("/save") public Person save(@RequestBody Person person) { return personService.save(person); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值