Neo4j 是一个图数据库,主要包括节点和关系。节点和关系都可以包含属性。

安装

下载Neo4j:https://neo4j.com/artifact.php?name=neo4j-community-3.3.5-windows.zip
解压后运行:

D:\Tools\neo4j-community-3.3.5\bin>neo4j.bat console
2018-04-13 06:03:08.826+0000 INFO  ======== Neo4j 3.3.5 ========
2018-04-13 06:03:08.853+0000 INFO  Starting...
2018-04-13 06:03:09.879+0000 INFO  Bolt enabled on 127.0.0.1:7687.
2018-04-13 06:03:14.553+0000 INFO  Started.
2018-04-13 06:03:15.612+0000 INFO  Remote interface available at http://localhost:7474/

访问Neoj Browser: http://127.0.0.1:7474/browser/,第一次访问会提示修改密码。

点击左边栏的Database,

Node Labels 表示存在的节点
Relationship Types表示存在的关系
Property Keys 表示节点或者关系的属性

在中间部分的上面可以输入要执行的命令。

接下来通过命令创建一个节点,节点的名字是Message,有两个属性title和text。

CREATE (:Message { title:'Welcome',text:'Hello world!' });

可以看到左边栏的Node Labels下面出现了 Message 节点。
现在可以通过下面的命令查询刚才创建的节点:

MATCH (n:Message) RETURN n LIMIT 25;


再创建一个Language节点:

CREATE (:Language { name:'Java',version:'1.8' });

有了Message节点和Language节点后,可以添加两个节点之间的关系了。

MATCH (m:Message),(c:Language)
WHERE m.title = 'Welcome' AND c.name = 'Java'
CREATE (m)-[:ACCESSED_FROM]->(c);

现在在左边栏Relationship Types下面可以看到刚才创建的关系,名字是ACCESSED_FROM。点击ACCESSED_FROM,可以图形化查看两个节点之间的关系。

下面查询刚才创建的关系:

MATCH (m:Message)-[:ACCESSED_FROM]->(l:Language)
RETURN m.title,l.name;

下面通过Java API来访问neo4j。

新建项目添加maven依赖:

<dependency><groupId>org.neo4j.driver</groupId><artifactId>neo4j-java-driver</artifactId><version>1.2.1</version>
</dependency>

下面是Java测试代码:

import org.neo4j.driver.v1.AuthTokens;
import org.neo4j.driver.v1.Driver;
import org.neo4j.driver.v1.GraphDatabase;
import org.neo4j.driver.v1.Record;
import org.neo4j.driver.v1.Session;
import org.neo4j.driver.v1.StatementResult;
import org.neo4j.driver.v1.Values;public class Neo4jTest {public static void main(String[] args) {Driver driver = GraphDatabase.driver("bolt://127.0.0.1:7687", AuthTokens.basic("neo4j", "000000"));Session session = driver.session();session.run("CREATE (:Message {title: 'Hello', text: 'hello world'})");session.run("CREATE (:Language {name: 'Java8', version: '1.8'})");String createRelationship = "MATCH (m:Message),(l:Language) WHERE m.title = 'Hello' AND l.name='Java8'"+ " CREATE (m)-[:HelloJava8]->(l);";session.run(createRelationship);String queryRelationship = "MATCH (m:Message)-[:HelloJava8]->" + "(l:Language {name:{language}}) "+ "RETURN m.title,l.name;";StatementResult resultSet = session.run(queryRelationship, Values.parameters("language", "Java8"));while (resultSet.hasNext()) {Record result = resultSet.next();System.out.println(result.get("m.title") + " from " + result.get("l.name"));}session.close();}}

运行结果:
“Hello” from “Java8”

现在可以在neo4j browser 看到通过Java API创建的节点和关系:

Neo4j 简单入门相关推荐

  1. Neo4j 快速入门

    Neo4j 快速入门 neo4j 官方文档 https://neo4j.com/docs/ neo4j 中文社区 http://neo4j.com.cn/ neo4j 开发者页面 https://ne ...

  2. BizTalk 2006 简单入门示例程序(附源项目文件下载)

    BizTalk 2006 简单入门示例程序(附源项目文件下载) 为初学BizTalk Server 2006的开发人员,提供一个简单入门的示例程序,包括一个Receive Port.Send Port ...

  3. python如何读取mat文件可视化_python Matplotlib数据可视化(1):简单入门

    1 matplot入门指南 matplotlib是Python科学计算中使用最多的一个可视化库,功能丰富,提供了非常多的可视化方案,基本能够满足各种场景下的数据可视化需求.但功能丰富从另一方面来说也意 ...

  4. ARM NEON 编程简单入门1

    原文:http://blog.csdn.net/silentob/article/details/72954618  ARM NEON 编程简单入门1 NEON简介 NEON是适用于ARM Corte ...

  5. Python 简单入门指北(二)

    Python 简单入门指北(二) 2 函数 2.1 函数是一等公民 一等公民指的是 Python 的函数能够动态创建,能赋值给别的变量,能作为参传给函数,也能作为函数的返回值.总而言之,函数和普通变量 ...

  6. EChart.js 简单入门

    EChart.js 简单入门 最近有一个统计的项目要做,在前端的数据需要用图表的形式展示.网上搜索了一下,发现有几种统计图库. MSChart   这个是Visual Studio里的自带控件,使用比 ...

  7. 【我的区块链之路】- Hyperledger fabric的简单入门(四)链码的编写及调试

    [我的区块链之路]- Hyperledger fabric的简单入门(四)链码的编写及调试       之前的文章中我们有讲过了fabric的一些核心的配置文件的选项说明,讲过fabric 的网络启动 ...

  8. 基于vue-cli、elementUI的Vue超简单入门小例子

    基于vue-cli.elementUI的Vue超简单入门小例子 这个例子还是比较简单的,独立完成后,能大概知道vue是干嘛的,可以写个todoList的小例子. 开始写例子之前,先对环境的部署做点简单 ...

  9. 【java开发系列】—— spring简单入门示例

    回顾 1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控 ...

最新文章

  1. icon制作无白色背景_科研立项答辩ppt制作公司
  2. Hive自定义UDF和聚合函数UDAF
  3. C++开发中的预处理器
  4. 去除img之间的空白
  5. 计算机学习的基本形式,电脑基础知识学习方法
  6. (6)JavaScript之console控制台
  7. 注意力机制可视化_最强NLP模型BERT可视化学习
  8. Java中instanceof与getClass的区别
  9. 系统学习NLP(二十八)--GPT
  10. redis数据类型之List入门练习
  11. 1-关于单片机通信数据传输(中断发送,大小端,IEEE754浮点型格式,共用体,空闲中断,环形队列)...
  12. EasyRecovery14免费并且超好用的数据恢复工具
  13. 苹果最强芯片M1 Ultra亮相!两个M1 Max胶水拼接,性能爆表
  14. 路由器刷openwrt后不能上网 修改brlan的ip地址失败
  15. 查看欧拉系统服务器ip,EulerOS 系统配置
  16. 十进制转换为三进制数_python3实现
  17. ag-Grid 超丰富的表格插件(1)——简易使用
  18. 创意图形的绘制 会转的风车
  19. 组播IGMP-原理介绍+报文分析+配置示例
  20. 蓝牙模块基础知识介绍

热门文章

  1. C语言中fscanf()函数的用法介绍
  2. leetcode 台阶_leetcode-爬楼梯(动态规划)
  3. 线上写入数据不成功,本地没问题的解决方法
  4. 上课第一天初感。。。
  5. c++中的sort函数
  6. MATLAB用rbf拟合sinx,为什么径向基(RBF)网络拟合度很差呢?
  7. 伟大的领导者要做到四件事(整理自《领导力精要》史蒂芬.柯维)
  8. SQL语句执行顺序详解
  9. R循环有两个_量化金融R语言【入门五味】五味:函数
  10. 微信小程序实例:实现tabs选项卡效果