【spring-boot-starter-data-neo4j】创建结点和查找结点操作

配置连接neo4j

复制代码
# application.properties
spring.neo4j.uri=bolt://localhost:7687
spring.neo4j.authentication.username=neo4j
spring.neo4j.authentication.password=你的密码

定义实体类

java 复制代码
package com.anmory.platform.GraphService.Dao;

import org.springframework.data.neo4j.core.schema.GeneratedValue;
import org.springframework.data.neo4j.core.schema.Id;
import org.springframework.data.neo4j.core.schema.Node;
import org.springframework.data.neo4j.core.schema.Property;

@Node(labels = "药材名称")
public class Herb {
    @Id
    @GeneratedValue
    private Long id;

    @Property("name")
    private String name;

    public Herb() {}

    public Herb(String name) {
        this.name = name;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

定义仓库类

java 复制代码
package com.anmory.platform.GraphService.Repository;

import com.anmory.platform.GraphService.Dao.Herb;
import org.springframework.data.neo4j.repository.Neo4jRepository;
import org.springframework.data.neo4j.repository.query.Query;
import org.springframework.stereotype.Repository;

/**
 * @author Anmory/李梦杰
 * @description TODO
 * @date 2025-03-15 下午12:58
 */

@Repository
public interface HerbRepo extends Neo4jRepository<Herb, Long> {
    // 使用自定义查询
    @Query("MATCH (herb:药材名称 {name: $name}) RETURN herb")
    Herb findByName(String name);
}

定义服务类

java 复制代码
package com.anmory.platform.GraphService.Service;

import com.anmory.platform.GraphService.Dao.Herb;
import com.anmory.platform.GraphService.Repository.HerbRepo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class HerbService {
    private static final Logger logger = LoggerFactory.getLogger(HerbService.class);

    @Autowired
    private HerbRepo herbRepo;

    public Herb createHerb(String name) {
        logger.info("Creating herb with name: {}", name);
        Herb herb = new Herb(name);
        return herbRepo.save(herb);
    }

    public Herb findHerbByName(String name) {
        logger.info("Finding herb by name: {}", name);
        return herbRepo.findByName(name); // 返回 null 如果未找到
    }
}

定义视图类

java 复制代码
package com.anmory.platform.GraphService.Controller;

import com.anmory.platform.GraphService.Dao.Herb;
import com.anmory.platform.GraphService.Service.HerbService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
public class HerbController {
    @Autowired
    private HerbService herbService;

    @PostMapping("/createherb")
    public Herb createHerb(@RequestParam String name) {
        System.out.println("name = " + name);
        return herbService.createHerb(name);
    }

    @GetMapping("/findherb")
    public Herb getHerbByName(@RequestParam String name) {
        System.out.println("name = " + name);
        return herbService.findHerbByName(name);
    }
}

测试创建和查找

在postman中输入以下url来创建和测试
http://localhost:8080/createherb?name=我的药材1
http://localhost:8080/findherb?name=我的药材1

相关推荐
Wenhao.2 天前
Docker 安装 neo4j
docker·容器·neo4j
RDCJM3 天前
Neo4j图数据库学习(二)——SpringBoot整合Neo4j
数据库·学习·neo4j
机器不学习我也不学习4 天前
TensorFlow环境安装
neo4j
码农老李6 天前
vxWorks7.0 Simpc运行tensorflow lite example
人工智能·tensorflow·neo4j
小鸡吃米…21 天前
TensorFlow 实现异或(XOR)运算
人工智能·python·tensorflow·neo4j
坐吃山猪21 天前
Neo4j04_数据库事务
数据库·oracle·neo4j
小鸡吃米…21 天前
TensorFlow 实现梯度下降优化
人工智能·python·tensorflow·neo4j
KG_LLM图谱增强大模型21 天前
图谱驱动大模型智能体普惠时代:Neo4j Aura Agent正式全面上线
neo4j
坐吃山猪21 天前
Docker06-Neo4j启动
neo4j
小鸡吃米…23 天前
TensorFlow 分布式计算
neo4j