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);}}

输出结果

如有疑问可留言或评论

相关内容

热门资讯

电视安卓系统哪个品牌好,哪家品... 你有没有想过,家里的电视是不是该升级换代了呢?现在市面上电视品牌琳琅满目,各种操作系统也是让人眼花缭...
安卓会员管理系统怎么用,提升服... 你有没有想过,手机里那些你爱不释手的APP,背后其实有个强大的会员管理系统在默默支持呢?没错,就是那...
安卓系统软件使用技巧,解锁软件... 你有没有发现,用安卓手机的时候,总有一些小技巧能让你玩得更溜?别小看了这些小细节,它们可是能让你的手...
安卓系统提示音替换 你知道吗?手机里那个时不时响起的提示音,有时候真的能让人心情大好,有时候又让人抓狂不已。今天,就让我...
安卓开机不了系统更新 手机突然开不了机,系统更新还卡在那里,这可真是让人头疼的问题啊!你是不是也遇到了这种情况?别急,今天...
安卓系统中微信视频,安卓系统下... 你有没有发现,现在用手机聊天,视频通话简直成了标配!尤其是咱们安卓系统的小伙伴们,微信视频功能更是用...
安卓系统是服务器,服务器端的智... 你知道吗?在科技的世界里,安卓系统可是个超级明星呢!它不仅仅是个手机操作系统,竟然还能成为服务器的得...
pc电脑安卓系统下载软件,轻松... 你有没有想过,你的PC电脑上安装了安卓系统,是不是瞬间觉得世界都大不一样了呢?没错,就是那种“一机在...
电影院购票系统安卓,便捷观影新... 你有没有想过,在繁忙的生活中,一部好电影就像是一剂强心针,能瞬间让你放松心情?而我今天要和你分享的,...
安卓系统可以写程序? 你有没有想过,安卓系统竟然也能写程序呢?没错,你没听错!这个我们日常使用的智能手机操作系统,竟然有着...
安卓系统架构书籍推荐,权威书籍... 你有没有想过,想要深入了解安卓系统架构,却不知道从何下手?别急,今天我就要给你推荐几本超级实用的书籍...
安卓系统看到的炸弹,技术解析与... 安卓系统看到的炸弹——揭秘手机中的隐形威胁在数字化时代,智能手机已经成为我们生活中不可或缺的一部分。...
鸿蒙系统有安卓文件,畅享多平台... 你知道吗?最近在科技圈里,有个大新闻可是闹得沸沸扬扬的,那就是鸿蒙系统竟然有了安卓文件!是不是觉得有...
宝马安卓车机系统切换,驾驭未来... 你有没有发现,现在的汽车越来越智能了?尤其是那些豪华品牌,比如宝马,它们的内饰里那个大屏幕,简直就像...
p30退回安卓系统 你有没有听说最近P30的用户们都在忙活一件大事?没错,就是他们的手机要退回安卓系统啦!这可不是一个简...
oppoa57安卓原生系统,原... 你有没有发现,最近OPPO A57这款手机在安卓原生系统上的表现真是让人眼前一亮呢?今天,就让我带你...
安卓系统输入法联想,安卓系统输... 你有没有发现,手机上的输入法真的是个神奇的小助手呢?尤其是安卓系统的输入法,简直就是智能生活的点睛之...
怎么进入安卓刷机系统,安卓刷机... 亲爱的手机控们,你是否曾对安卓手机的刷机系统充满好奇?想要解锁手机潜能,体验全新的系统魅力?别急,今...
安卓系统程序有病毒 你知道吗?在这个数字化时代,手机已经成了我们生活中不可或缺的好伙伴。但是,你知道吗?即使是安卓系统,...
奥迪中控安卓系统下载,畅享智能... 你有没有发现,现在汽车的中控系统越来越智能了?尤其是奥迪这种豪华品牌,他们的中控系统简直就是科技与艺...