springboot整合neo4j--采用Neo4jClient和Neo4jTemplate方式

1.背景

看了spring-boot-starter-data-neo4j的源码之后发现,该starter内已经实现了Neo4jClientNeo4jTemplate ,我们只需要使用Autowire就能直接使用它操作neo4j。

Neo4jClient方式与我的另一篇springboot整合neo4j-使用原生cypher Java API博客方式一样,Neo4jTemplate则与SpringBoot 整合 Neo4j博客实现方式类似,但比这篇博客要简单。

2.实现

2.1引入maven

springboot版本为2.6,低版本的可能不支持。

java 复制代码
<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-neo4j</artifactId>
</dependency>

该包里面已经包含了neo4j-java-driver,故不需要额外引入。

完整maven文件与我的另一篇博客内容一致springboot整合neo4j-使用原生cypher Java API

2.2配置

因为该方式是springboot starter方式,所以配置文件的配置路径是固定的。

java 复制代码
spring.data.neo4j.uri=bolt://127.0.0.1:7687
spring.data.neo4j.username=neo4j
spring.data.neo4j.password=123456

2.3测试

java 复制代码
package com.win.chaos;

import com.win.chaos.model.neo4j.Neo4jGraph;
import org.junit.jupiter.api.Test;
import org.neo4j.driver.*;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.neo4j.core.Neo4jClient;
import org.springframework.data.neo4j.core.Neo4jTemplate;
import javax.annotation.Resource;

@SpringBootTest
public class Neo4jTest {

    @Resource
    private Neo4jClient neo4jClient;
    @Resource
    private Neo4jTemplate neo4jTemplate;

    @Test
    public void test() {
        String cypher = "MATCH p=()-[r:`持股`]->() RETURN p LIMIT 25";
        Driver driver = GraphDatabase.driver("bolt://127.0.0.1:7687", AuthTokens.basic("neo4j", "123456"));
        Session session = driver.session();
        //Transaction ts = session.beginTransaction();
        //Result result = ts.run(cypher);
        Result result = session.run(cypher);
        Neo4jGraph graph = Neo4jGraph.parse(result);
        int size = graph.getNodes().size();
    }

    @Test
    public void testNeo4jClient() {
        String cypher = "MATCH p=()-[r:`持股`]->() RETURN p LIMIT 25";
        String addQL = "CREATE (o:people {name:\"里斯\",id:32435})"
        QueryRunner runner = neo4jClient.getQueryRunner();
        Result result = runner.run(cypher);
        Neo4jGraph graph = Neo4jGraph.parse(result);
        int size = graph.getNodes().size();

		runner.run(addQL);
    }

    @Test
    public void testNeo4jTemplate() {
        String cypher = "MATCH p=()-[r:`持股`]->() RETURN p LIMIT 25";
        QueryRunner runner = neo4jTemplate.findAll();//需要传入参数
        Result result = runner.run(cypher);
        Neo4jGraph graph = Neo4jGraph.parse(result);
        int size = graph.getNodes().size();
    }
}

上述代码中的解析查询结果的代码Neo4jGraph.parse与我的另一篇博客内容一致springboot整合neo4j-使用原生cypher Java API

完整代码:本博客完整代码

相关推荐
小蒜学长1 小时前
医疗报销系统的设计与实现(代码+数据库+LW)
数据库·spring boot·学习·oracle·课程设计
羊小猪~~1 小时前
MYSQL学习笔记(九):MYSQL表的“增删改查”
数据库·笔记·后端·sql·学习·mysql·考研
豌豆花下猫1 小时前
Python 潮流周刊#90:uv 一周岁了,优缺点分析(摘要)
后端·python·ai
橘猫云计算机设计2 小时前
基于SSM的《计算机网络》题库管理系统(源码+lw+部署文档+讲解),源码可白嫖!
java·数据库·spring boot·后端·python·计算机网络·毕设
小盼江2 小时前
水果生鲜农产品推荐系统 协同过滤余弦函数推荐水果生鲜农产品 Springboot Vue Element-UI前后端分离 代码+开发文档+视频教程
vue.js·spring boot·ui
熬夜苦读学习2 小时前
Linux文件系统
linux·运维·服务器·开发语言·后端
坚定信念,勇往无前2 小时前
Spring Boot中整合Flink CDC 数据库变更监听器来实现对MySQL数据库
数据库·spring boot·flink
坚定信念,勇往无前3 小时前
Spring Boot 如何保证接口安全
spring boot·后端·安全
程序员侠客行4 小时前
Spring事务原理详解 三
java·后端·spring·架构
尚学教辅学习资料4 小时前
基于SpringBoot+Vue+uniapp的高校招聘小程序+LW参考示例
spring boot·uni-app·招聘系统