Springboot项目连接neo4j数据库
创始人
2024-05-30 05:08:27
0

首先创建一个springboot项目,这里不再介绍。

1 导入依赖包

连接neo4j数据库的依赖包

org.neo4jneo4j-ogm-http-driver2.1.5

spring-boot-starter-data-neo4j依赖包

org.springframework.bootspring-boot-starter-data-neo4j

mybatis-plus依赖包

com.baomidoumybatis-plus-boot-starter3.2.0

全部的依赖包

org.springframework.bootspring-boot-starterorg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-testtestorg.projectlomboklombok1.18.20org.neo4jneo4j-ogm-http-driver2.1.5com.baomidoumybatis-plus-boot-starter3.2.0org.springframework.bootspring-boot-starter-data-neo4j

2 编写application.yml文件

server:port: 1111
spring:neo4j:uri: bolt://localhost:7687authentication:username: neo4jpassword: 12345678data:neo4j:database: neo4j

3 编写实体类文件

创建Author.java实体类

package com.yz.geokg.entity;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.neo4j.ogm.annotation.NodeEntity;
import org.neo4j.ogm.annotation.Relationship;
import org.springframework.data.neo4j.core.schema.GeneratedValue;
import org.springframework.data.neo4j.core.schema.Id;import java.util.List;/*** @author Administrator*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@NodeEntity(label = "Author")
public class Author {@Id@GeneratedValueprivate Long id;private String name;// 这个不是必须的,根据自己的需要添加这个,这个是一个neo4j数据库中的关系@Relationship(type="is_last_known_in", direction = Relationship.OUTGOING)private List affiliationList;
}

4 编写controller

创建AuthorController.java文件

package com.yz.geokg.controller;import com.yz.geokg.entity.Author;
import com.yz.geokg.entity.Result;
import com.yz.geokg.service.AuthorService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;/*** @author Administrator*/
@RestController
@RequestMapping("author")
public class AuthorController {@Autowiredprivate AuthorService authorService;@ApiOperation(value = "根据关键词查询作者")@GetMapping("/{keyword}")public List queryAuthorByKeyword(@PathVariable String keyword){return authorService.queryAuthorByKeyword(keyword);}
}

5 编写Service文件

创建AuthorService.java接口文件

package com.yz.geokg.service;import com.yz.geokg.entity.Author;import java.util.List;/*** @author Administrator*/
public interface AuthorService {/*** 根据关键词查询作者* @param word 关键词(文章主题)* @return 作者列表*/List queryAuthorByKeyword(String word);
}

创建AuthorServiceImpl.java接口实现文件

package com.yz.geokg.service.impl;import com.yz.geokg.entity.Affiliation;
import com.yz.geokg.entity.Author;
import com.yz.geokg.mapper.AffiliationMapper;
import com.yz.geokg.mapper.AuthorMapper;
import com.yz.geokg.service.AuthorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class AuthorServiceImpl implements AuthorService {@Autowiredprivate AuthorMapper authorMapper;@Autowiredprivate AffiliationMapper affiliationMapper;@Overridepublic List queryAuthorByKeyword(String word) {List authorList = authorMapper.queryAuthorByKeyword(word);for(Author author : authorList){List affiliations = affiliationMapper.queryAffiliationByAuthor(author.getName());author.setAffiliationList(affiliations);}return authorList;}
}

6 编写mapper文件

创建AuthorMapper文件

package com.yz.geokg.mapper;import com.yz.geokg.entity.Author;
import com.yz.geokg.entity.Illustration;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.neo4j.repository.Neo4jRepository;
import org.springframework.data.neo4j.repository.query.Query;
import org.springframework.stereotype.Repository;import java.util.List;/*** @author Administrator*/
@Mapper
@Repository
public interface AuthorMapper extends Neo4jRepository {/*** 根据文献标题查询作者* @param title 文献标题* @return 作者列表*/@Query("MATCH p=(n:Paper{title:$title})-[r:is_written_by]->(a:Author) RETURN a")List queryAuthorByTitle(@Param("title")String title);@Query("MATCH (a:Author)<-[r1:is_written_by]-(p:Paper)-[r2:has_keyword]->(k:KeyWord{word:$word}) RETURN DISTINCT a")List queryAuthorByKeyword(@Param("word")String word);
}

7 测试

在test文件夹下编写测试类

@Testvoid getImage(){List authorList = authorMapper.queryAuthorByTitle("中国海、陆相页岩层系岩相组合多样性与非常规油气勘探意义");System.out.println("=====查询结果=====");for(Author author : authorList){System.out.println(author);}}

输出结果

如有疑问可留言或评论

相关内容

热门资讯

安卓系统对比骁龙,性能与生态的... 你有没有想过,为什么你的手机里装的是安卓系统,而不是苹果的iOS呢?又或者,为什么你的安卓手机里搭载...
qt程序安卓系统运行,基于Qt... 你有没有想过,为什么有些手机上的程序运行得那么顺畅,而有些却总是卡得让人抓狂?今天,就让我来给你揭秘...
安卓系统免费应用推荐,助你畅享... 手机里的应用是不是越来越多,有时候都挑花眼了呢?别急,今天我就来给你推荐一些安卓系统上的免费应用,让...
安卓系统视频通话app,打造无... 你有没有发现,现在手机上的视频通话功能越来越强大了?尤其是安卓系统上的那些视频通话app,简直让人爱...
安卓系统发现高危病毒,守护手机... 亲爱的手机用户们,最近可是有个大消息在安卓系统用户群里炸开了锅!没错,就是安卓系统发现了一款高危病毒...
安卓系统疯狂弹广告,揭秘广告软... 你有没有遇到过这种情况?手机里突然弹出一个广告,让你瞬间心情大崩溃?没错,说的就是安卓系统那让人头疼...
ebook 10进入安卓系统 你有没有发现,最近你的安卓手机里多了一个新伙伴——那就是电子书(ebook)10!没错,就是那个我们...
安卓系统如何调听筒,安卓系统调... 手机听筒声音突然变小了?别急,让我来教你如何轻松调教安卓系统的听筒,让它重新恢复活力!一、检查音量设...
安卓系统是怎么手机,解锁智能生... 你有没有想过,我们每天不离手的安卓手机,它背后的安卓系统究竟是怎么一回事呢?今天,就让我带你一探究竟...
安卓系统能代替windows系... 你有没有想过,我们日常使用的安卓系统和Windows系统,哪个才是真正的霸主呢?是不是有时候觉得安卓...
lp108安卓系统,功能特点与... 你有没有听说最近LP108安卓系统火得一塌糊涂?没错,就是那个让无数手机用户都为之疯狂的新系统!今天...
安卓系统挂载u盘,轻松实现数据... 你有没有想过,你的安卓手机或平板电脑突然变成了一个移动的U盘?没错,就是那种可以随意存取文件的神奇设...
i5 安卓系统,引领智能终端新... 你有没有想过,为什么你的手机总是卡得要命,而别人的手机却能流畅如丝?是不是因为你的手机搭载了那个传说...
安卓手机系统没有升级,揭秘潜在... 你有没有发现,你的安卓手机系统好像好久没升级了呢?是不是觉得有点out了?别急,今天就来给你详细聊聊...
安卓14系统定制v,创新功能与... 你知道吗?最近安卓系统又出新花样了!安卓14系统定制版V,这名字听起来就让人兴奋不已。今天,就让我带...
手机安卓系统越高越好,探索最新... 你有没有发现,每次手机更新系统,你的手机就像脱胎换骨了一样?没错,说的就是你,那个安卓手机!今天,咱...
鸿蒙系统怎么用回安卓,轻松实现... 你是不是也和我一样,对鸿蒙系统的新鲜感还没过,却又忍不住想回到熟悉的安卓世界?别急,今天就来手把手教...
苹果7跟安卓系统,性能对决与用... 你有没有想过,为什么苹果7那么受欢迎,而安卓系统却有着庞大的用户群体?今天,我们就来聊聊这个话题,看...
安卓手机刷简化系统,轻松实现流... 你有没有想过,你的安卓手机其实可以变得更加轻快、流畅呢?没错,就是通过刷简化系统!今天,就让我带你一...
社保掌上通安卓系统,轻松掌握在... 你有没有发现,现在的生活越来越离不开手机了?无论是购物、聊天还是办公,手机都能轻松搞定。这不,今天就...