neo4j安装_SpringBoot官方网站例子--使用NEO4J访问图形数据库

本次我们讲述使用Springboot来操作 NEO4J增加和查找消息。图形数据库在实际开发中经常用到,可以用来金融行业反欺诈多维关联分析场景;社交网络图谱,获得人与人之间的关系;企业关系图谱。Neo4j是一个高性能的NOSQL图形数据库,是当今最流行的图数据库,基于 节点+关系 的架构,保存了图形数据的基本元素。同时,数据库也支持通过基础数据元素和独特的CQL查询语法,快速方便的检索、构建复杂的图表关系结果。本例你可以学到NEO4J安装和使用。

我利用业余时间,翻译了Spring官网的例子,方便中文不好的同学,将陆续发到头条上,欢迎大家关注,也可以上我个人BLOG:itmanclub.com,上面有已经翻译过的。

01262df63236aa98ea0f30cd2c9dd0b0.png

正文:

程序结构

└── src └── main └── java └── hello

pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>4.0.0org.springframework gs-accessing-data-neo4j 0.1.0org.springframework.boot spring-boot-starter-parent 2.1.6.RELEASE1.8org.springframework.boot spring-boot-starter-data-neo4j org.springframework.boot spring-boot-maven-plugin 

Spring Boot将会你做如下的事:

  • 将 classpath 里面所有用到的jar包构建成一个可执行的 JAR 文件,方便执行你的程序
  • 搜索public static void main()方法并且将它当作可执行类
  • 根据springboot版本,去查找相应的依赖类版本,当然你可以定义其它版本。

创建一个Neo4j服务器

在构建此应用程序之前,需要设置NEO4J服务器,NEO4J有一个开源服务器,您可以免费安装:

https://neo4j.com/download/community-edition/

安装后,采用默认配置,通过下面命令启动他:

$ neo4j start

启动后您应该看到这样的消息:

Starting Neo4j.Started neo4j (pid 96416). By default, it is available at http://localhost:7474/There may be a short delay until the server is ready.See /usr/local/Cellar/neo4j/3.0.6/libexec/logs/neo4j.log for current status.

默认情况下,NEO4J的用户名/密码为neo4j/neo4j。但是,它要求更改新的帐户密码。为此,请执行以下命令:

$ curl -v -u neo4j:neo4j -X POST localhost:7474/user/neo4j/password -H "Content-type:application/json" -d "{"password":"secret"}"

这会将密码从neo4j更改为secret(在生产中不能执行某些操作!)完成后,你就准备好基础环境了。

定义简单实体

Neo4j需要实体及其之间关系,假设您正在建模一个系统,在该系统中为每个人存储一个记录。但您还需要跟踪每一个人的同事关系(本例中的队友)。使用Neo4j,您可以通过一些简单的注释来捕获所有这些内容。

src/main/java/hello/Person.java

package hello;import java.util.Collections;import java.util.HashSet;import java.util.Optional;import java.util.Set;import java.util.stream.Collectors;import org.neo4j.ogm.annotation.GeneratedValue;import org.neo4j.ogm.annotation.Id;import org.neo4j.ogm.annotation.NodeEntity;import org.neo4j.ogm.annotation.Relationship;@NodeEntitypublic class Person { @Id @GeneratedValue private Long id; private String name; private Person() { // Empty constructor required as of Neo4j API 2.0.5 }; public Person(String name) { this.name = name; } /** * Neo4j并没有真正的双向关系,意味着当查询忽略关系的方向。 * https://dzone.com/articles/modelling-data-neo4j */ @Relationship(type = "TEAMMATE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值