由于机缘巧合,原来要接手做一个和图数据库相关的外包项目。但是由于临近毕业,各种压力大,遂放弃。但是自己还是各种翻墙了解了一番Neo4j,我自己理解的Neo4j就是一个图数据库,它存在的目的就是类似一个引擎,使得一些嵌套级别高的,可以以更快的速度来获取结果。仅仅是个人见解,不知道对不对。发现度娘很难找到自己需要的材料。就各种看官网网站,最后在这文章里找到了一点材料,自己总结一下,有不对的地方,请指出。
1、Neo4j简介
什么是图数据库?
图形数据库是专门存储和检索大量信息的存储引擎。它能高效的存储节点和关系,并且支持高效率的查找这些结构。节点和关系中都可以增加属性,一个节点可以没有标签,也可以有多个标签,关系总是有向的,并且必须被命名。
图形数据库非常适合存储大多数类型的实体模型,在几乎所有的实体中,都存在着从一个实体到另外一个实体之间的关系。在其他建模方法中,事情之间的关系被减少到一直有一个单一的连接,并且没有标识和属性。图数据库支持将域内原有的丰富关系完好地保存到数据库中,而不诉诸于将关系建模为“事物”。将现实域映射到图形数据库时,很少有“阻抗不匹配”。
2、概述
入门
我们首先定义一些实体类和一些可选的注解。我们通过使用注解来映射节点和关系到图数据库中。Spring Data Neo4j 4.1(以下简称SDN 4.1)戏剧化的简化了开发过程。但是一些设置自然还是需要的。为了构建应用,我们的构建工具需要包含Spring Data Neo4j的依赖。并且当构建完成之后,我们的Spring应用配置上Spring Data Neo4j。Spring Data Neo4j 4.x版本之后,不支持配置文件来配置,需要引入注解来配置。这里介绍通过使用Maven来构建该应用。先贴上一张自己新建的maven项目,并且相关的SpringMVC的依赖。
Maven依赖
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sdn.version>4.1.0.RELEASE</sdn.version>
<neo4j-ogm.version>2.1.0</neo4j-ogm.version>
<neo4j.version>3.1.0</neo4j.version>
<spring.version>4.2.5.RELEASE</spring.version>
<neo4j.ogm.version>2.1.0</neo4j.ogm.version>
</properties>
<dependencies>
<!--Spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<!--SDN-->
<dependency>