neo4j_0">配置连接neo4j
# application.properties
spring.neo4j.uri=bolt://localhost:7687
spring.neo4j.authentication.username=neo4j
spring.neo4j.authentication.password=你的密码
定义实体类
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@GeneratedValueprivate 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;}
}
定义仓库类
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);
}
定义服务类
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);@Autowiredprivate 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 如果未找到}
}
定义视图类
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 {@Autowiredprivate 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