neo4j图形数据库Java应用
CREATE
(陈冠希:明星 {名称: "陈冠希"}),
(王菲:明星 {名称: "王菲"}),
(李亚鹏:明星 {名称: "李亚鹏"}),
(瞿颖:明星 {名称: "瞿颖"}),
(张柏芝:明星 {名称: "张柏芝"}),
(谢霆锋:明星 {名称: "谢霆锋"}),
(周迅:明星 {名称: "周迅"}),
(张亚东:明星 {名称: "张亚东"}),
(窦唯:明星 {名称: "窦唯"}),
(窦鹏:明星 {名称: "窦鹏"}),
(李大齐:明星 {名称: "李大齐"}),
(朴树:明星 {名称: "朴树"}),
(窦颖:明星 {名称: "窦颖"}),
(梁朝伟:明星 {名称: "梁朝伟"}),
(刘嘉玲:明星 {名称: "刘嘉玲"}),
(周迅)-[:旧爱]->(窦鹏),
(周迅)-[:旧爱]->(李大齐),
(周迅)-[:旧爱]->(朴树),
(周迅)-[:旧爱]->(李亚鹏),
(周迅)-[:绯闻]->(梁朝伟),
(周迅)-[:绯闻]->(谢霆锋),
(王菲)-[:离异]->(李亚鹏),
(王菲)-[:旧爱]->(谢霆锋),
(王菲)-[:离异]->(窦唯),
(谢霆锋)-[:旧友]->(陈冠希),
(谢霆锋)-[:离异]->(张柏芝),
(张亚东)-[:制作人]->(朴树),
(张亚东)-[:离异]->(窦颖),
(张亚东)-[:制作人]->(王菲),
(李亚鹏)-[:旧爱]->(瞿颖),
(陈冠希)-[:旧爱]->(张柏芝),
(瞿颖)-[:旧爱]->(张亚东),
(窦唯)-[:堂兄弟]->(窦鹏),
(窦唯)-[:兄妹]->(窦颖),
(梁朝伟)-[:夫妻]->(刘嘉玲),
(王菲)-[:好友]->(刘嘉玲)
MATCH (n:明星) RETURN n
效果:
直接关系
MATCH m=(:明星 {名称:"周迅"})-[*..1]-() RETURN m
最短路径
MATCH p = AllShortestPaths(
(周迅:明星 {名称:"周迅"})-[*..6]-(王菲:明星 {名称:"王菲"})
) RETURN p
效果:
MATCH p=(()<-[:旧爱]-()-[:旧爱]->()) RETURN p LIMIT 50
MATCH p=(()<-[:旧爱]-()<-[:旧爱]-()-[:旧爱]->()) RETURN p LIMIT 50
MATCH p=(()<-[:旧爱]-()<-[:旧爱]-()) RETURN p LIMIT 50
直接上代码.
bolt连接:
package com;
import org.neo4j.driver.v1.AuthTokens;
import org.neo4j.driver.v1.Driver;
import org.neo4j.driver.v1.GraphDatabase;
import org.neo4j.driver.v1.Session;
import org.neo4j.driver.v1.StatementResult;
import org.neo4j.driver.v1.Transaction;
import org.neo4j.driver.v1.TransactionWork;
import static org.neo4j.driver.v1.Values.parameters;
public class HelloWorldExample implements AutoCloseable {
private final Driver driver;
public HelloWorldExample(String uri, String user, String password) {
driver = GraphDatabase.driver(uri, AuthTokens.basic(user, password));
}
@Override
public void close() throws Exception {
driver.close();
}
public void printGreeting(final String message) {
try (Session session = driver.session()) {
String greeting = session
.writeTransaction(new TransactionWork<String>() {
@Override
public String execute(Transaction tx) {
StatementResult result = tx
.run("CREATE (a:Greeting) "
+ "SET a.message = $message "
+ "RETURN a.message + ', from node ' + id(a)",
parameters("message", message));
return result.single().get(0).asString();
}
});
System.out.println(greeting);
}
}
public static void main(String... args) throws Exception {
try (HelloWorldExample greeter = new HelloWorldExample(
"bolt://localhost:7687", "neo4j", "123456")) {
greeter.printGreeting("hello, world");
}
}
}
package com;
import static org.neo4j.driver.v1.Values.parameters;
import java.util.HashMap;
import java.util.Map;
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.Value;
public class Neo4jBoltAPIDBOperation {
public static void main(String[] args) {
// TODO Auto-generated method stub
Driver driver = GraphDatabase.driver("bolt://127.0.0.1:7687",
AuthTokens.basic("neo4j", "123456"));
Session session = driver.session();
session.run("CREATE (a:Person {name: {name}, title: {title}})",
parameters("name", "gm", "title", "King"));
StatementResult result = session.run(
"MATCH (a:Person) WHERE a.name = {name} "
+ "RETURN a.name AS name, a.title AS title",
parameters("name", "gm"));
while (result.hasNext()) {
Record record = (Record) result.next();
System.out.println(record.get("title").asString() + " "
+ record.get("name").asString());
}
session.close();
driver.close();
}
}
直接操作数据库文件(确保服务已关闭):
package com;
import java.io.File;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Relationship;
import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;
public class Neo4jJavaAPIDBOperation {
public static void main(String[] args) {
GraphDatabaseFactory dbFactory = new GraphDatabaseFactory();
GraphDatabaseService db = dbFactory.newEmbeddedDatabase(new File("E:/neo4j-community-3.3.5/data/databases/graph.db"));
try (Transaction tx = db.beginTx()) {
Node javaNode = db.createNode(Tutorials.JAVA);
javaNode.setProperty("TutorialID", "JAVA001");
javaNode.setProperty("Title", "Learn Java");
javaNode.setProperty("NoOfChapters", "25");
javaNode.setProperty("Status", "Completed");
Node scalaNode = db.createNode(Tutorials.SCALA);
scalaNode.setProperty("TutorialID", "SCALA001");
scalaNode.setProperty("Title", "Learn Scala");
scalaNode.setProperty("NoOfChapters", "20");
scalaNode.setProperty("Status", "Completed");
Relationship relationship = javaNode.createRelationshipTo(
scalaNode, TutorialRelationships.JVM_LANGIAGES);
relationship.setProperty("Id", "1234");
relationship.setProperty("OOPS", "YES");
relationship.setProperty("FP", "YES");
tx.success();
}
System.out.println("Done successfully");
}
}
package com;
import org.neo4j.graphdb.Label;
public enum Tutorials implements Label {
JAVA,SCALA,SQL,NEO4J;
}
package com;
import org.neo4j.graphdb.RelationshipType;
public enum TutorialRelationships implements RelationshipType {
JVM_LANGIAGES, NON_JVM_LANGIAGES;
}
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>neo4j</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>3.3.5</version>
</dependency>
<dependency>
<groupId>org.neo4j.driver</groupId>
<artifactId>neo4j-java-driver</artifactId>
<version>1.4.4</version>
</dependency>
</dependencies>
<build />
</project>
与Spring集成未完待续、、、
neo4j图形数据库Java应用的更多相关文章
- Neo4j图形数据库备份
Neo4j图形数据库备份 backup.sh文件 nowtime=`date +"%Y-%m-%d_%H_%M"` #原文件路径 sourcepath='/home/neo4j/n ...
- ubutun lunix 64安装neo4j 图形数据库
借鉴链接: https://my.oschina.net/zlb1992/blog/915038
- 图形数据库、NOSQL和Neo4j
简介 在众多不同的数据模型里,关系数据模型自80年代就处于统治地位,而且有不少实现,如Oracle.MySQL和MSSQL,它们也被称为关系数据库管理系统(RDBMS).然而,最近随着关系数据库使用案 ...
- 开源图形数据库Neo4j介绍与安装
图形数据库是以图形结构形式存储数据的数据库. https://neo4j.com/ Java 编写 保存为节点以及节点之间的关系 Neo4j 的数据由下面几部分构成: 节点 边 属性 无论是顶点还是边 ...
- Neo4j 第二篇:图形数据库
在深入学习图形数据库之前,首先理解属性图的基本概念.一个属性图是由顶点(Vertex),边(Edge),标签(Lable),关系类型和属性(Property)组成的有向图.顶点也称作节点(Node), ...
- 图形数据库Neo4j基本了解
在深入学习图形数据库之前,首先理解属性图的基本概念.一个属性图是由顶点(Vertex),边(Edge),标签(Lable),关系类型和属性(Property)组成的有向图.顶点也称作节点(Node), ...
- java连接neo4j
呼.博客要落灰了 记录一下Java连接neo4j的问题. 首先是neo4j的下载和配置,基本参考https://blog.csdn.net/appleyk/article/details/790918 ...
- [转载]Java程序员使用的20几个大数据工具
最近我问了很多Java开发人员关于最近12个月内他们使用的是什么大数据工具. 这是一个系列,主题为: 语言web框架应用服务器SQL数据访问工具SQL数据库大数据构建工具云提供商今天我们就要说说大数据 ...
- Java程序员使用的20几个大数据工具
最近我问了很多Java开发人员关于最近12个月内他们使用的是什么大数据工具. 这是一个系列,主题为: 语言 web框架 应用服务器 SQL数据访问工具 SQL数据库 大数据 构建工具 云提供商 今天我 ...
随机推荐
- 使用@Test报java.lang.NullPointerException at org.eclipse.jdt.internal.junit4.runner.SubForestFilter.shouldRun(SubForestFilter.java:81)异常
对公司的项目进行二次开发时,在调试过程中用到@Test注解,运行使发现控制台报空指针异常,如图: 参考网上相应资料后,删除项目中自带的Junit4.jar,然后使用eclipse开发工具自带的Juni ...
- 在centos上配置环境
1. 安装wget [root@localhost ~]# yum -y install wget 2. 在oneinstack官网配置安装环境 wget http://mirrors.lin ...
- echarts gauge 仪表盘去除外发光效果
textStyle中加shadow选项: textStyle: { shadowColor : '#000', //默认透明 shadowBlur: 0 }
- React-Native 之 GD (六)无数据情况处理
1.还是网络问题,在网络出现问题或者无法加载数据的时候,一般我们会展示空白页,在空白页中提示 无数据 之类的提示,比较好的还会使用 指示器 的方式告诉用户网络出现问题等等. 这边我们做以下处理,当无数 ...
- nginx 和 php
sudo apt-get install nginx sudo groupadd www sudo useradd -g www www /etc/nginx/nginx.conf service n ...
- qbzt day1 上午
内容提要 模拟,贪心 在讲这些东西之前,我们先来了解一个东西:high level 这个东西大体上就是你做题之前要先想清楚自己要写什么,怎么写,然后再写,不要有一点写一点 1.模拟 模拟算法算是很水的 ...
- 小程序框架MpVue踩坑日记(二)
数据嵌套超过三层或者等于三层的时候 父组件传值给子组件后,如果子组件内的值需要改变 通过this.emit()传值后,父组件的值虽然会改变,但是视图并不会重新渲染 原因就是数据嵌套太多,没有触发ren ...
- Delphi XE2 之 FireMonkey 入门(27) - 数据绑定: TBindingsList: TBindScope
Delphi XE2 之 FireMonkey 入门(27) - 数据绑定: TBindingsList: TBindScope 如果在编写表达式时, 如果能够随意指认需要的控件就好了(通过 Owne ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_01 File类_6_File类判断功能的方法
exists true表示路径是存在的 不存在的路径 不存在的路径返回false 相对路径的文件的判断 ‘ 不存在的相对路径 isDirectory和isFile 路径是不存在的 用这个方法之前最好先 ...
- sorted()与sort()函数
1 sorted可以对series,ndarry,list类型进行排序 默认会从小到大进行排序 arr1 = np.array([1,2,3,4,44,3243,43,8678]) print(sor ...