neo4j整合springboot

neo4j整合springboot

1 创建一个springboot项目

2 引入eno4j依赖

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

<!--lombok-->
<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
</dependency>

3 springboot版本

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

4 添加配置文件

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

5 创建实体

@NodeEntity:标明是一个节点实体

@RelationshipEntity:标明是一个关系实体

@Id:实体主键

@Property:实体属性

@GeneratedValue:实体属性值自增

@StartNode:开始节点(可以理解为父节点)

@EndNode:结束节点(可以理解为子节点)

@Data
@NodeEntity("Student") //与图数据库进行绑定
public class Person implements Serializable {

    @Id
    @GeneratedValue
    private Long id;

    @Property("name")
    private String name;
}

6 创建接口继承Neo4jRepository

Neo4jRepositore里 封装了简单的crud

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

    //此语句是已存在的节点,创建节点之间的关系
    @Query("match (n:Student {name:{0}}),(m:Student {name:{2}})" +
            "create (n)-[:关系demo{relation:{1}}]->(m)")
    void createRelation(String from, String relation, String to);
    /**
    * 查询某个节点的所有子节点 
    * @param pId * @return 
    */ 
    @Query("Match (p:Student ) -[*]->(s:Student) where id(p)={0} return s")
    List<Person> findChildList(Long pId);
}

7 测试

@Autowired
private PersonRepository personRepository;

	@Test
    public void testCreate() {
        /* //查询
        Optional<Person> byId = personRepository.findById(353L);
        byId.orElse(null);
        */

        Person person = new Person();
        person.setName("李四");
        //创建节点 使用Neo4jRepositore里的方法
        personRepository.save(person);
    }

	//原生语句进行创建关系
    @Test
    public void createPersonRelation2() {
        personRepository.createRelation("张三","好友","李四");
    }
	//原生语句 查询某个节点的所有子节点
	@Test
    public void findByid() {
        List<Person> byId = personRelationRepository.findChildList(352L);
        System.out.println(byId);
    }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!对于Neo4j和Spring Boot的结合,我可以给你一些指导。 首先,Neo4j是一个非关系型图形数据库,它使用图形结构来存储数据并支持复杂的查询。Spring Boot是一个用于快速构建Java应用程序的框架,它提供了许多方便的功能和工具。 要在Spring Boot应用程序中使用Neo4j,你可以借助Neo4j的官方Spring Data Neo4j项目。Spring Data Neo4j是Spring Data项目的一部分,它为Neo4j提供了便捷的对象映射和数据库操作功能。 以下是在Spring Boot中使用Neo4j的一些基本步骤: 1. 添加依赖:在Maven或Gradle配置文件中,添加Spring Data Neo4j和Neo4j驱动的依赖。 2. 配置数据库连接:在application.properties或application.yml文件中配置Neo4j数据库连接的相关信息,例如数据库URL、用户名和密码等。 3. 创建实体类:使用注解标记实体类,并定义实体之间的关系。这些实体类将映射到Neo4j数据库中的节点和关系。 4. 创建Repository接口:使用Spring Data Neo4j的@Repository注解创建一个接口,继承自Neo4jRepository或其子接口,用于定义数据访问方法。 5. 编写业务逻辑:在Service层中编写业务逻辑代码,调用Repository接口中的方法进行数据操作。 6. 使用Neo4j的查询语言:使用Cypher查询语言执行复杂的图形查询,通过@Repository注解中的@Query注解进行定义和调用。 以上是一个简单的概述,你可以根据具体需求深入学习和应用Neo4j和Spring Boot的相关文档和示例代码来实现更复杂的功能。 希望这些信息能对你有所帮助!如果你有任何更具体的问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值