Neo4j简单的样例
系统环境:
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
以下样例演示了一个银行层级关系的样例
央行以下有四大行,四大行以下有各自的分行。各自的分行又有各自的支行
package com.lala.neo4j; import org.neo4j.graphdb.Label; public class BankLabel implements Label
{
private String name; public BankLabel(String name)
{
this.name = name;
}
public String name()
{
return name;
}
}
package com.lala.neo4j; import org.neo4j.graphdb.RelationshipType; public class BankRelationshipType implements RelationshipType
{
private String ship; public BankRelationshipType(String ship)
{
this.ship = ship;
}
public String name()
{
return ship;
}
}
package com.lala.neo4j; import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.factory.GraphDatabaseFactory; public class Neo4j
{
/**
* 标签
*/
static BankLabel top = new BankLabel("总行");
static BankLabel sdh = new BankLabel("四大银行");
static BankLabel fh = new BankLabel("分行");
static BankLabel zh = new BankLabel("支行"); /**
* 关系
*/
static BankRelationshipType xj = new BankRelationshipType("XJ");
static BankRelationshipType sj = new BankRelationshipType("SJ"); /**
* 初始化总行和分行的关系数据
*/
static void init1(GraphDatabaseService db)throws Exception
{
Node n1 = db.createNode(top);
n1.setProperty("name", "央行"); Node n2 = db.createNode(sdh);
n2.setProperty("name", "农业银行"); Node n3 = db.createNode(sdh);
n3.setProperty("name", "工商银行"); n1.createRelationshipTo(n2, sj);
n2.createRelationshipTo(n1, xj); n1.createRelationshipTo(n3, sj);
n3.createRelationshipTo(n1, xj);
} /**
* 初始化农业银行分行数据
*/
static void init2(GraphDatabaseService db)throws Exception
{
Node n1 = db.getNodeById(1); Node gd = db.createNode(fh);
gd.setProperty("name", "农业银行广东分行");
n1.createRelationshipTo(gd, sj);
gd.createRelationshipTo(n1, xj); Node hn = db.createNode(fh);
hn.setProperty("name", "农业银行湖南分行");
n1.createRelationshipTo(hn, sj);
hn.createRelationshipTo(n1, xj); Node hb = db.createNode(fh);
hb.setProperty("name", "农业银行湖北分行");
n1.createRelationshipTo(hb, sj);
hb.createRelationshipTo(n1, xj); Node zj = db.createNode(fh);
zj.setProperty("name", "农业银行浙江分行");
n1.createRelationshipTo(zj, sj);
zj.createRelationshipTo(n1, xj);
} /**
* 初始化工商银行分行数据
*/
static void init3(GraphDatabaseService db)throws Exception
{
Node n1 = db.getNodeById(2); Node gd = db.createNode(fh);
gd.setProperty("name", "工商银行广东分行");
n1.createRelationshipTo(gd, sj);
gd.createRelationshipTo(n1, xj); Node hn = db.createNode(fh);
hn.setProperty("name", "工商银行湖南分行");
n1.createRelationshipTo(hn, sj);
hn.createRelationshipTo(n1, xj); Node hb = db.createNode(fh);
hb.setProperty("name", "工商银行湖北分行");
n1.createRelationshipTo(hb, sj);
hb.createRelationshipTo(n1, xj);
} /**
* 初始化农业银行广东分行以下的支行数据
*/
static void init4(GraphDatabaseService db)throws Exception
{
Node n1 = db.getNodeById(3); Node th = db.createNode(zh);
th.setProperty("name", "农业银行天河支行营业部");
n1.createRelationshipTo(th, sj);
th.createRelationshipTo(n1, xj); Node yt = db.createNode(zh);
yt.setProperty("name", "农业银行燕塘支行");
n1.createRelationshipTo(yt, sj);
yt.createRelationshipTo(n1, xj); Node thb = db.createNode(zh);
thb.setProperty("name", "农业银行天河北路支行");
n1.createRelationshipTo(thb, sj);
thb.createRelationshipTo(n1, xj); Node sp = db.createNode(zh);
sp.setProperty("name", "农业银行石牌东路支行");
n1.createRelationshipTo(sp, sj);
sp.createRelationshipTo(n1, xj); Node hy = db.createNode(zh);
hy.setProperty("name", "农业银行华苑支行");
n1.createRelationshipTo(hy, sj);
hy.createRelationshipTo(n1, xj);
} /**
* start a=node(13) MATCH (a)<-[:SJ*1..3]-(b) return a,b (往上找三级,一共四级)
* start a=node(1) MATCH (a)-[:SJ*1..3]->(b) return a,b (往下找三级,一共四级)
*/
public static void main(String[] args) throws Exception
{
GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabase("/home/admin/db/neo4j"); Transaction tx = db.beginTx();
init1(db);
init2(db);
init3(db);
init4(db);
tx.success();
tx.close();
}
}
这里数据的路径是:/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简单的样例的更多相关文章
- Introspector(内省)简单演示样例 与 简单应用
简单演示样例: package com.asdfLeftHand.test; import java.beans.BeanDescriptor; import java.beans.BeanInfo; ...
- JBoss 系列九十六:JBoss MSC - 简介及一个简单演示样例
什么是 JBoss MSC JBoss MSC 即 JBoss Modular Service Container,是第三代 JBoss 产品 JBoss 7和WildFfly的内核,JBoss MS ...
- Thrift的安装和简单演示样例
本文仅仅是简单的解说Thrift开源框架的安装和简单使用演示样例.对于具体的解说,后面在进行阐述. Thrift简述 ...
- [hadoop系列]Pig的安装和简单演示样例
inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish ).(来源:http://blog.csdn.net/inkfish) Pig是Yaho ...
- 一则简单演示样例看Oracle的“无私”健壮性
Oracle的强大之处就在于他能总帮助让你选择正确的运行计划,即使你给了它错误的指示. 实验: 1. 创建測试表: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZ ...
- scrapy爬虫学习系列二:scrapy简单爬虫样例学习
系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...
- Android中关于JNI 的学习(零)简单的样例,简单地入门
Android中JNI的作用,就是让Java可以去调用由C/C++实现的代码,为了实现这个功能.须要用到Anrdoid提供的NDK工具包,在这里不讲怎样配置了,好麻烦,配置了好久. . . 本质上,J ...
- Android通过startService播放背景音乐简单演示样例
关于startService的基本使用概述及其生命周期可參见博客<Android中startService的使用及Service生命周期>. 本文通过播放背景音乐的简单演示样例,演示sta ...
- 使用CEF(二)— 基于VS2019编写一个简单CEF样例
使用CEF(二)- 基于VS2019编写一个简单CEF样例 在这一节中,本人将会在Windows下使用VS2019创建一个空白的C++Windows Desktop Application项目,逐步进 ...
随机推荐
- python常用的十进制、16进制、字符串、字节串之间的转换
进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 废话不多上,直接上例子 整数之间的进制转换: 10进制转16进制: hex(16) ==> 0x10 ...
- vue前端导出zip包
1. npm install jszip /npm install script-loader / npm install file-saver 2.功能代码 require('script-loa ...
- 【转】MySQL索引原理及慢查询优化
MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位 ...
- js屏蔽键盘按键
3.1屏蔽键盘所有键 <script language="javascript"> <!-- function document.onkeydown(){ eve ...
- LeetCode: Evaluate Reverse Polish Notation 解题报告
Evaluate Reverse Polish Notation Evaluate the value of an arithmetic expression in Reverse Polish No ...
- SQLAlchemy数据库连接和初始化数据库
查看版本 >>> import sqlalchemy >>> sqlalchemy.__version__ '1.0.9' 创建连接 from sqlclachem ...
- JavaScript高级 面向对象(5)--最简单的继承方式,混入mix
说明(2017.3.30): 1. 最简单的继承方式,混入mix <!DOCTYPE html> <html lang="en"> <head> ...
- .net安装部署“Error 1001 在初始化安装时发生异常” 的解决方法
状况描述:打包安装后,如果删除安装目录中的某个文件,这时从桌面快捷方式启动软件系统会自动运行修复程序,此时因为路径问题会报出“错误 1001 在初始化安装时发生异常xxx”的异常.(前提是你的安装部署 ...
- SpringMVC经典系列-15对SpringMVC的总结---【LinusZhu】
注意:此文章是个人原创,希望有转载须要的朋友们标明文章出处,假设各位朋友们认为写的还好,就给个赞哈.你的鼓舞是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系linusz ...
- xss 防止攻击,恶意用户将输入的信息当成html或js代码执行,办法是将用户输入的信息改为text格式,或特殊符号转义
xss 防止攻击,恶意用户将输入的信息当成html或js代码执行,办法是将用户输入的信息改为text格式,或特殊符号转义 XSS攻击的防范 XSS攻击造成的危害之所以会发生,是因为用户的输入变成了可执 ...