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. Visual Studio Installer下载速度为0处理办法

    DNS改为:223.5.5.5即可. 223.5.5.5 下载完成后记得改回来.

  2. electron-vue 项目启动动态获取配置文件中的后端服务地址

    前言 最近的项目迭代中新增一个需求,需要在electron-vue 项目打包之后,启动exe 可执行程序的时候,动态获取配置文件中的 baseUrl 作为服务端的地址.electron 可以使用 no ...

  3. 六、LVM和从磁盘配额

    一.LVM概述 Logical Volume Manager,逻辑卷管理 优点:能够保证在现有数据不变的情况下,动态调整磁盘容量,从而提高磁盘管理的灵活性 /boot分区用于存放引导文件,不能基于LV ...

  4. Python:27行代码实现将多个Excel表格内容批量汇总合并到一个表格

    序言 (https://jq.qq.com/?_wv=1027&k=GmeRhIX0) 老板最近越来越过分了,快下班了发给我几百个表格让我把内容合并到一个表格内去.还好我会Python,分分钟 ...

  5. docker安装报错failure: repodata/repomd.xml from mirrors.aliyun.com_docker-ce_linux_centos_docker-ce.pro

    1.进入 /etc/yum.repos.d 目录下,将所有有关 docker 的 repo 全部删掉 2.重新添加镜像 sudo yum-config-manager --add-repo https ...

  6. colab解压.tar.gz文件指令

    !tar -zxvf flower_photos.tar.gz 成功后如图:

  7. adb工具

    ADB:全称为Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具.   首先,下载ADB工具并安装:   下载:百度就有.下载后是个压缩包,将其拷贝到cm ...

  8. C语言动态输出等腰三角形

    C语言动态输出等腰三角形 题目要求:输入行数 打印出对应行数的等腰三角形,要求使用for循环嵌套. 思路 while语句写外层死循环 用于判断输出的数据: 分析: 最外层for,来控制最外层行数,存储 ...

  9. gnet: 一个轻量级且高性能的 Go 网络框架 使用笔记

    一个偶然的机会接触到了golang,被它的高并发传说所吸引,就开始学这门语言,越学感觉越有意思^_^ 注册了博客园这么多年,第一次写东西,年纪大了,脑子不好使了,就得写下来,记下来,为了自己以后查阅, ...

  10. 你真的了解JAVA中对象和类、this、super和static关键字吗

    作者:小牛呼噜噜 | https://xiaoniuhululu.com 计算机内功.JAVA底层.面试相关资料等更多精彩文章在公众号「小牛呼噜噜 」 目录 Java对象究竟是什么? 创建对象的过程 ...