Neo4j在linux上的安装与Springboot的集成

在linux安装:

前提:安装配置好java环境

1.下载neo4j

官方社区版下载地址:https://neo4j.com/download-center/#releases

或直接使用服务器命令下载:

curl -O http://dist.neo4j.org/neo4j-community-3.5.35-unix.tar.gz

解压缩:

tar -axvf neo4j-community-3.5.35-unix.tar.gz

2.修改目录中的conf/neo4j.conf文件

# 修改第22行load csv时l路径,在前面加个#,可从任意路径读取文件
#dbms.directories.import=import # 修改54行,去掉改行的#,可以远程通过ip访问neo4j数据库
dbms.connectors.default_listen_address=0.0.0.0 #以下三项可不修改
# 修改71行,去掉#,设置http端口为7687
dbms.connector.bolt.listen_address=:7687
# 修改75行,去掉#,设置http端口为7474
dbms.connector.http.listen_address=:7474
# 修改79行,去掉#,设置https端口为7473
dbms.connector.https.listen_address=:7473 # 去掉#,允许从远程url来load csv
dbms.security.allow_csv_import_from_file_urls=true # 允许使用neo4j-shell
dbms.shell.enabled=true #去掉#,设置连接neo4j-shell的端口,一般为localhost或者127.0.0.1其他使用https就行
dbms.shell.host=127.0.0.1 #去掉#,设置neo4j-shell端口
dbms.shell.port=1337 # 修改254行,设置neo4j可读可写
dbms.read_only=false执行

3.进入bin目录开启:

  • 开启:执行./neo4j start
  • 停止:执行./neo4j stop
  • 状态:执行./neo4j status

4.访问:

http://ip地址:7474/browser/

注:如果使用云服务器不要忘记开放7474端口和7687端口

第一次登录账号密码:

账号 neo4j
密码 neo4j

Springboot操作neo4j图数据库

1. 导入依赖文件

  <!-- neo4j -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-neo4j</artifactId>
<version>2.5.2</version>
</dependency>

2. 配置yml

关闭Neo4j的认证,在目录conf/neo4j.conf`文件里

dbms.security.auth_enabled=false

spring:
neo4j:
uri: bolt://localhost:7687 #bolt端口
authentication:
username: neo4j #账号
password: neo4j #密码

3. 创建实体类

@Node(labels = "person")
@Data
public class PersonNode {
@Id
@GeneratedValue
private Long id; @Property("name")
private String name; @Property("sex")
private String sex;
}

@Node表示创建结点,结点为person

4. 创建关系类(可选)

@Data
@NoArgsConstructor
@RelationshipEntity(type = "关系名称")
public class PersonRelation implements Srializable {
@Id
@GeneratedValue
private Long id;
@StartNode
private Person parent;
@EndNode
private Person child;
@Property
private String relation; public PersonRelation(Person parent, Person child, String relation) {
this.parent = parent;
this.child = child;
this.relation = relation;
}
}

5. 创建Repository

@Repository
public interface PersonRepository extends Neo4jRepository<PersonNode,Long> {
/**
* 获得全部人员节点
* @return
*/
@Query("MATCH (n:person) RETURN n ")
List<PersonNode> getAllPersonNode(); /**
* 分页查询
* @param current
* @param size
* @param name
* @return
*/
@Query("MATCH (n:person) where n.name =~ ('.*'+{2}+'.*') RETURN n ORDER BY n.id DESC SKIP {0} LIMIT {1}")
List<PersonNode> getPersonNodeByName(Integer current, Integer size, String name); /**
* 模糊查询人名
* @param name
* @return
*/
@Query("MATCH (n:person) where n.name =~ ('.*'+{0}+'.*') RETURN n ")
List<PersonNode> getPersonNodeName(String name); /**
* 通过id查询
* @param id
* @return
*/
@Query("MATCH (n:person) where id(n)={0} RETURN n")
PersonNode getPersonNodeById(Long id); /**
*通过id查询某节点的所有子节点
* @param pId
* @return
*/
@Query("Match (p:person) -[*]->(s:person) where id(p)={0} return s")
List<Person> findChildList(Long pId); /**
*通过name查询某个节点的所有子节点
* @param pId
* @return
*/
@Query("Match (p:person {name:{0}}) -[*]->(s:person) return s")
List<Person> findChildList(String name); /**
* 查询当前节点的父节点
* @param name
* @return
*/
@Query("Match (p:person) -[*]->(s:person {name:{0}}) return p")
List<Person> findParentList(String name); }

6. 在启动类上加上:

@EnableNeo4jRepositories(basePackages ="com.code.dao")
@EntityScan(basePackages = "com.code.pojo")

Neo4j在linux上的安装与Springboot的集成的更多相关文章

  1. jemalloc在linux上从安装到使用

    jemalloc在linux上从安装到使用 上次在引导大家安装Redis时提到可能会报错:  发现了redis有用到jemalloc. 首先,jemalloc是干什么的? 我们看看作者自己的介绍: j ...

  2. 分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装

    redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...

  3. GIT在Linux上的安装和使用简介

    GIT最初是由Linus Benedict Torvalds为了更有效地管理Linux内核开发而创立的分布式版本控制软件,与常用的版本控制工具如CVS.Subversion不同,它不必服务器端软件支持 ...

  4. 分布式缓存技术redis学习(一)——redis简介以及linux上的安装

    redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...

  5. 在Linux上怎么安装和配置Apache Samza

    samza是一个分布式的流式数据处理框架(streaming processing),它是基于Kafka消息队列来实现类实时的流式数据处理的.(准确的说,samza是通过模块化的形式来使用kafka的 ...

  6. ODI11G 在Linux上的安装配置

    ODI11G 在Linux上的安装配置 OS环境:Red hat Linux x86_64 一.JDK安装 1. 去oracle官网上下载 http://www.oracle.com/technetw ...

  7. 【JAVAWEB学习笔记】27_Redis:在Linux上的安装、Jedis和常用命令

    一.Redis简介 1.关于关系型数据库和nosql数据库 关系型数据库是基于关系表的数据库,最终会将数据持久化到磁盘上,而nosql数据     库是基于特殊的结构,并将数据存储到内存的数据库.从性 ...

  8. 【数据库】Mean web开发 04-MongoDB在Linux上的安装及遇到的问题

    简介 Mean是JavaScript的全栈开发框架.更多介绍 用MongoDB实现持久数据的存储是Mean Web全栈开发中的一部分. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非 ...

  9. linux上redis安装配置及其防漏洞配置及其攻击方法

    Linux上redis安装: 需先在服务器上安装yum(虚拟机可使用挂载的方式安装) 安装配置所需要的环境运行指令:  yum -y install gcc 进入解压文件执行make 指令进行编译 执 ...

随机推荐

  1. Sublime Text 新建代码片段(图解)

    新建代码片段 1.打开NEW Snippet- 2.编辑代码片段 3.设置快捷键,按tab键执行 更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_4451949 ...

  2. 缤纷多彩的WPF样式框架,开源项目

    下面介绍的四种主流样式框架(最近项目需要,所以了解了一些),在Nuget及Github均可以找到~ 首推样式框架MahApp.Metro 再推样式框架ModernUI 三推样式框架MaterialDe ...

  3. windows下telnet的用法

    前言 这里利用Windows7下如何使用Telnet命令给大家总结如下: 第一步:在控制面板里,点击"程序"选项 第二步:在程序选项下,点击"打开或关闭Windows功能 ...

  4. C++ 练气期之二维数组与矩阵运算

    1. 前言 C++中的一维数组可以存储线性结构的数据,二维数组可以存储平面结构的数据.如班上所有学生的各科目成绩就有二个维度,学生姓名维度和科目成绩维度. 这样的表格数据可以使用二维数组进行存储. 当 ...

  5. C# MVCapi跨域问题

     he 'Access-Control-Allow-Origin' header contains multiple values ', *', but only one is allowed. Or ...

  6. 或许是 WebGIS 下一代的数据规范 - OGC API 系列

    目录 1. 前言 1.1. 经典的 OGC 标准回顾 1.2. 共同特点与时代变化 1.3. 免责声明 2. 什么是 OGC API 2.1. OGC API 是一个开放.动态的规范族 2.2. OG ...

  7. 项目配置yaml

    springboot的一些配置 #当循环调用时,就会报错 spring.main.allow-circular-references=true #配置mvc是需要使用一个@EnableWebMvc,不 ...

  8. 第十三天python3 生成器yield

    生成器generator 生成器指的是生成器对象,可由生成器表达式得到,也可以使用yield关键字得到一个生成器函数,调用这个函数得到一个生成器对象: 生成器函数 函数体中包含yield语句的函数,返 ...

  9. 记vs2019 The view 'xxx' was not found.

    版本:Visual Studio 2019 16.8.2/16.8.4.net core 3.1 1.检测是否是拼写错误2.检查.csproj为文件中是否包含有下面的content remove(这种 ...

  10. 丽泽普及2022交流赛day18 社论

    A 暴力扫一遍 B 算法 0 似乎是二分 算法 1 随便贪心 C 算法 1 枚举一个点作为最大值 / 最小值,用单调栈维护其作为答案的左右端点即可轻易计算 . 时间复杂度 \(O(n)\) . 算法 ...