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

输出结果

如有疑问可留言或评论

相关内容

热门资讯

通用制卡安卓系统版本 你有没有发现,手机里的那些卡片应用越来越智能了?这不,最近我在研究通用制卡安卓系统版本的时候,发现了...
安卓系统最好的省电王,助你续航... 手机电量总是不够用?是不是每次出门前都要检查一下充电宝在不在?别急,今天我要给你介绍一个安卓系统里的...
安卓通话系统变成黑色了,探究原... 最近你的安卓手机通话界面是不是突然变成了黑色?别急,别慌,让我来给你详细解析一下这个现象,让你轻松应...
长沙雨天攻略系统和安卓,畅游雨... 长沙这座美丽的城市,一到雨天就变得特别有味道。但你知道吗,雨天出行可不是件容易事儿,尤其是对于不熟悉...
安卓系统照片打印机,便捷打印新... 你有没有想过,手机里的照片,怎么才能变成实体的相片呢?没错,就是那种可以捧在手心、贴在墙上的那种!今...
安卓系统内录声音破解 你有没有想过,你的安卓手机里那些看似平常的录音,其实可能藏着不为人知的秘密呢?没错,就是那些你在不知...
安卓系统开发外包,共创卓越移动... 你有没有想过,为什么你的手机里那么多应用,而有些应用却让你爱不释手?这其中,安卓系统开发外包可是功不...
安卓系统应用分身微信 你有没有想过,你的手机里那个天天不离手的微信,竟然还能有个分身呢?没错,就是那个安卓系统下的应用分身...
安卓系统如何打开hwp,安卓系... 你是不是也遇到了这样的问题:手里拿着一份HWP格式的文档,却苦于不知道如何在安卓系统上打开它?别急,...
蜜豆下载安卓系统 你有没有想过,手机里多一款有趣的APP,生活就能多一份乐趣呢?今天,就让我来给你安利一款超级好用的A...
天天2棋牌安卓系统,体验指尖竞... 你有没有发现,最近手机上的一款游戏特别火?没错,就是天天2棋牌安卓系统!这款游戏不仅玩法多样,而且界...
安卓系统屏幕上的图标,图标解析... 你有没有发现,每次打开安卓手机,那屏幕上密密麻麻的图标就像是一张五彩斑斓的地图,指引着你在数字世界的...
安卓系统搞怪软件有哪些,笑点连... 你有没有发现,安卓系统里的软件真是五花八门,有些甚至能让你忍俊不禁呢!今天,就让我带你一起探索那些安...
安卓系统如何给ios系统送皮肤... 你知道吗?现在手机界可是热闹非凡,安卓和iOS两大阵营的粉丝们都在为自家的系统争得面红耳赤。不过,今...
苹果转换安卓系统时蓝屏,揭秘蓝... 你有没有遇到过这种情况?手机突然蓝屏,屏幕上什么都没有,就那么静静地躺在那里,仿佛在向你诉说着什么。...
安卓系统的滑盖,便捷操作背后的... 你有没有发现,最近手机界又掀起了一股复古风潮?没错,就是那些曾经风靡一时的滑盖手机!它们又回来了,而...
苹果系统容易操作吗安卓,轻松上... 说到手机操作系统,你是不是也和我一样,对苹果系统和安卓系统有着浓厚的兴趣呢?毕竟,这两个系统在市场上...
安卓系统镜头怎么调焦距,安卓系... 你有没有发现,用安卓手机拍照的时候,有时候镜头的焦距调得不对,照片就变得模糊不清呢?别急,今天就来手...
安卓经典系统壁纸高清,感受时光... 亲爱的手机控们,你是否曾在某个午后,百无聊赖地翻看着手机,突然被那些精美的壁纸吸引住了目光?没错,就...
安卓系统怎么样安装wd系统,安... 你有没有想过给你的安卓手机来个换装大变身?没错,就是将安卓系统升级为WD系统!听起来是不是有点酷炫?...