系统环境:

Ubuntu 04.10 x64

一:安装

下载最新版:neo4j-community-2.2.3-unix.tar.gz  解压

cd neo4j-community-2.2.3/bin

./neo4j start

启动之后。默认的webport是:7474

三:JAVA操作neo4j

以下样例演示了一个银行层级关系的样例

央行以下有四大行,四大行以下有各自的分行。各自的分行又有各自的支行

  1. package com.lala.neo4j;
  2.  
  3. import org.neo4j.graphdb.Label;
  4.  
  5. public class BankLabel implements Label
  6. {
  7. private String name;
  8.  
  9. public BankLabel(String name)
  10. {
  11. this.name = name;
  12. }
  13. public String name()
  14. {
  15. return name;
  16. }
  17. }

  1. package com.lala.neo4j;
  2.  
  3. import org.neo4j.graphdb.RelationshipType;
  4.  
  5. public class BankRelationshipType implements RelationshipType
  6. {
  7. private String ship;
  8.  
  9. public BankRelationshipType(String ship)
  10. {
  11. this.ship = ship;
  12. }
  13. public String name()
  14. {
  15. return ship;
  16. }
  17. }
  1. package com.lala.neo4j;
  2.  
  3. import org.neo4j.graphdb.GraphDatabaseService;
  4. import org.neo4j.graphdb.Node;
  5. import org.neo4j.graphdb.Transaction;
  6. import org.neo4j.graphdb.factory.GraphDatabaseFactory;
  7.  
  8. public class Neo4j
  9. {
  10. /**
  11. * 标签
  12. */
  13. static BankLabel top = new BankLabel("总行");
  14. static BankLabel sdh = new BankLabel("四大银行");
  15. static BankLabel fh = new BankLabel("分行");
  16. static BankLabel zh = new BankLabel("支行");
  17.  
  18. /**
  19. * 关系
  20. */
  21. static BankRelationshipType xj = new BankRelationshipType("XJ");
  22. static BankRelationshipType sj = new BankRelationshipType("SJ");
  23.  
  24. /**
  25. * 初始化总行和分行的关系数据
  26. */
  27. static void init1(GraphDatabaseService db)throws Exception
  28. {
  29. Node n1 = db.createNode(top);
  30. n1.setProperty("name", "央行");
  31.  
  32. Node n2 = db.createNode(sdh);
  33. n2.setProperty("name", "农业银行");
  34.  
  35. Node n3 = db.createNode(sdh);
  36. n3.setProperty("name", "工商银行");
  37.  
  38. n1.createRelationshipTo(n2, sj);
  39. n2.createRelationshipTo(n1, xj);
  40.  
  41. n1.createRelationshipTo(n3, sj);
  42. n3.createRelationshipTo(n1, xj);
  43. }
  44.  
  45. /**
  46. * 初始化农业银行分行数据
  47. */
  48. static void init2(GraphDatabaseService db)throws Exception
  49. {
  50. Node n1 = db.getNodeById(1);
  51.  
  52. Node gd = db.createNode(fh);
  53. gd.setProperty("name", "农业银行广东分行");
  54. n1.createRelationshipTo(gd, sj);
  55. gd.createRelationshipTo(n1, xj);
  56.  
  57. Node hn = db.createNode(fh);
  58. hn.setProperty("name", "农业银行湖南分行");
  59. n1.createRelationshipTo(hn, sj);
  60. hn.createRelationshipTo(n1, xj);
  61.  
  62. Node hb = db.createNode(fh);
  63. hb.setProperty("name", "农业银行湖北分行");
  64. n1.createRelationshipTo(hb, sj);
  65. hb.createRelationshipTo(n1, xj);
  66.  
  67. Node zj = db.createNode(fh);
  68. zj.setProperty("name", "农业银行浙江分行");
  69. n1.createRelationshipTo(zj, sj);
  70. zj.createRelationshipTo(n1, xj);
  71. }
  72.  
  73. /**
  74. * 初始化工商银行分行数据
  75. */
  76. static void init3(GraphDatabaseService db)throws Exception
  77. {
  78. Node n1 = db.getNodeById(2);
  79.  
  80. Node gd = db.createNode(fh);
  81. gd.setProperty("name", "工商银行广东分行");
  82. n1.createRelationshipTo(gd, sj);
  83. gd.createRelationshipTo(n1, xj);
  84.  
  85. Node hn = db.createNode(fh);
  86. hn.setProperty("name", "工商银行湖南分行");
  87. n1.createRelationshipTo(hn, sj);
  88. hn.createRelationshipTo(n1, xj);
  89.  
  90. Node hb = db.createNode(fh);
  91. hb.setProperty("name", "工商银行湖北分行");
  92. n1.createRelationshipTo(hb, sj);
  93. hb.createRelationshipTo(n1, xj);
  94. }
  95.  
  96. /**
  97. * 初始化农业银行广东分行以下的支行数据
  98. */
  99. static void init4(GraphDatabaseService db)throws Exception
  100. {
  101. Node n1 = db.getNodeById(3);
  102.  
  103. Node th = db.createNode(zh);
  104. th.setProperty("name", "农业银行天河支行营业部");
  105. n1.createRelationshipTo(th, sj);
  106. th.createRelationshipTo(n1, xj);
  107.  
  108. Node yt = db.createNode(zh);
  109. yt.setProperty("name", "农业银行燕塘支行");
  110. n1.createRelationshipTo(yt, sj);
  111. yt.createRelationshipTo(n1, xj);
  112.  
  113. Node thb = db.createNode(zh);
  114. thb.setProperty("name", "农业银行天河北路支行");
  115. n1.createRelationshipTo(thb, sj);
  116. thb.createRelationshipTo(n1, xj);
  117.  
  118. Node sp = db.createNode(zh);
  119. sp.setProperty("name", "农业银行石牌东路支行");
  120. n1.createRelationshipTo(sp, sj);
  121. sp.createRelationshipTo(n1, xj);
  122.  
  123. Node hy = db.createNode(zh);
  124. hy.setProperty("name", "农业银行华苑支行");
  125. n1.createRelationshipTo(hy, sj);
  126. hy.createRelationshipTo(n1, xj);
  127. }
  128.  
  129. /**
  130. * start a=node(13) MATCH (a)<-[:SJ*1..3]-(b) return a,b (往上找三级,一共四级)
  131. * start a=node(1) MATCH (a)-[:SJ*1..3]->(b) return a,b (往下找三级,一共四级)
  132. */
  133. public static void main(String[] args) throws Exception
  134. {
  135. GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabase("/home/admin/db/neo4j");
  136.  
  137. Transaction tx = db.beginTx();
  138. init1(db);
  139. init2(db);
  140. init3(db);
  141. init4(db);
  142. tx.success();
  143. tx.close();
  144. }
  145. }

这里数据的路径是:/home/admin/db/neo4j

cd neo4j-community-2.2.3/conf

vim neo4j-server.properties 文件。把数据库文件夹改为上面的路径,然后,重新启动neo4j

訪问

http://127.0.0.1:7474

输入默认的username/password neo4j/neo4j

然后。改动默认password

就可以查询

以下给几个查询语句

查询全部:match a return a

查询全部标签为'分行'的数据 match (a:分行) return a

start a=node(1) MATCH (a)-[:SJ*1..3]->(b) return a,b (从node id=1開始,往下找三级,一共四级)

start a=node(13) MATCH (a)<-[:SJ*1..3]-(b) return a,b (从node id=13開始。往上找三级。一共四级)

总结:neo4j非常适合保存有层级关系的数据,比方说:无限极分类

Neo4j简单的样例的更多相关文章

  1. Introspector(内省)简单演示样例 与 简单应用

    简单演示样例: package com.asdfLeftHand.test; import java.beans.BeanDescriptor; import java.beans.BeanInfo; ...

  2. JBoss 系列九十六:JBoss MSC - 简介及一个简单演示样例

    什么是 JBoss MSC JBoss MSC 即 JBoss Modular Service Container,是第三代 JBoss 产品 JBoss 7和WildFfly的内核,JBoss MS ...

  3. Thrift的安装和简单演示样例

    本文仅仅是简单的解说Thrift开源框架的安装和简单使用演示样例.对于具体的解说,后面在进行阐述. Thrift简述                                           ...

  4. [hadoop系列]Pig的安装和简单演示样例

    inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish ).(来源:http://blog.csdn.net/inkfish) Pig是Yaho ...

  5. 一则简单演示样例看Oracle的“无私”健壮性

    Oracle的强大之处就在于他能总帮助让你选择正确的运行计划,即使你给了它错误的指示. 实验: 1. 创建測试表: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZ ...

  6. scrapy爬虫学习系列二:scrapy简单爬虫样例学习

    系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备:      http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...

  7. Android中关于JNI 的学习(零)简单的样例,简单地入门

    Android中JNI的作用,就是让Java可以去调用由C/C++实现的代码,为了实现这个功能.须要用到Anrdoid提供的NDK工具包,在这里不讲怎样配置了,好麻烦,配置了好久. . . 本质上,J ...

  8. Android通过startService播放背景音乐简单演示样例

    关于startService的基本使用概述及其生命周期可參见博客<Android中startService的使用及Service生命周期>. 本文通过播放背景音乐的简单演示样例,演示sta ...

  9. 使用CEF(二)— 基于VS2019编写一个简单CEF样例

    使用CEF(二)- 基于VS2019编写一个简单CEF样例 在这一节中,本人将会在Windows下使用VS2019创建一个空白的C++Windows Desktop Application项目,逐步进 ...

随机推荐

  1. jQuery实现的手风琴效果

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  2. rzsz安装【转】

    环境:CentOS 发生情况:需要安装工具:szrz 工具进行 windows 和linux传文件 安装方式:从网上其他教程找的所以就按照如下方式操作 1. 下载软件 rzsz-3.34.tar.gz ...

  3. springmvc集成Freemarke配置的几点

    项目结构图 废话不多说, 集成步骤: 1.web.xml  spring-mvc配置 <?xml version="1.0" encoding="UTF-8&quo ...

  4. Python 进行 SSH 操作,实现本地与服务器的链接,进行文件的上传和下载

    Python 进行 SSH 操作,实现本地与服务器的链接,进行文件的上传和下载 2018年5月26日 19:03 阅读 375 评论 7 我本地和服务器的连接一直使用的是 Xshell 5,而在与服务 ...

  5. svn 使用笔记(一)

    检出: svn checkout http://***.***.***.*** path --username *** --password ***   更新: svn update path --f ...

  6. mybatis中如果存在参数不再实体中的是如何处理

    <select id="queryMapByType" parameterType="int" resultType="my.geomap.VO ...

  7. 【C#/WPF】保存BitmapImage数据到文件中

    参考: http://stackoverflow.com/questions/35804375/how-do-i-save-a-bitmapimage-from-memory-into-a-file- ...

  8. 关于JXL读写以及修改EXCEL文件<转>

    首先引用网上的文章,谈谈JXL与POI的区别 POI为apache公司的一个子项目,主要是提供一组操作windows文档的Java API. Java Excel俗称jxl是一开放源码项目,通过它Ja ...

  9. [转]Eclipse下导入外部jar包的3种方式

    我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3种Eclipse引入jar包的方式.   1.最常用的普通 ...

  10. 将string转换成char型的一般方法

    C++文件读取中: infile in: in.open("file.dat",ios::in); 这样是能够的. 可是 string a; a="file.dat&qu ...