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应用的更多相关文章

  1. Neo4j图形数据库备份

    Neo4j图形数据库备份 backup.sh文件 nowtime=`date +"%Y-%m-%d_%H_%M"` #原文件路径 sourcepath='/home/neo4j/n ...

  2. ubutun lunix 64安装neo4j 图形数据库

    借鉴链接: https://my.oschina.net/zlb1992/blog/915038

  3. 图形数据库、NOSQL和Neo4j

    简介 在众多不同的数据模型里,关系数据模型自80年代就处于统治地位,而且有不少实现,如Oracle.MySQL和MSSQL,它们也被称为关系数据库管理系统(RDBMS).然而,最近随着关系数据库使用案 ...

  4. 开源图形数据库Neo4j介绍与安装

    图形数据库是以图形结构形式存储数据的数据库. https://neo4j.com/ Java 编写 保存为节点以及节点之间的关系 Neo4j 的数据由下面几部分构成: 节点 边 属性 无论是顶点还是边 ...

  5. Neo4j 第二篇:图形数据库

    在深入学习图形数据库之前,首先理解属性图的基本概念.一个属性图是由顶点(Vertex),边(Edge),标签(Lable),关系类型和属性(Property)组成的有向图.顶点也称作节点(Node), ...

  6. 图形数据库Neo4j基本了解

    在深入学习图形数据库之前,首先理解属性图的基本概念.一个属性图是由顶点(Vertex),边(Edge),标签(Lable),关系类型和属性(Property)组成的有向图.顶点也称作节点(Node), ...

  7. java连接neo4j

    呼.博客要落灰了 记录一下Java连接neo4j的问题. 首先是neo4j的下载和配置,基本参考https://blog.csdn.net/appleyk/article/details/790918 ...

  8. [转载]Java程序员使用的20几个大数据工具

    最近我问了很多Java开发人员关于最近12个月内他们使用的是什么大数据工具. 这是一个系列,主题为: 语言web框架应用服务器SQL数据访问工具SQL数据库大数据构建工具云提供商今天我们就要说说大数据 ...

  9. Java程序员使用的20几个大数据工具

    最近我问了很多Java开发人员关于最近12个月内他们使用的是什么大数据工具. 这是一个系列,主题为: 语言 web框架 应用服务器 SQL数据访问工具 SQL数据库 大数据 构建工具 云提供商 今天我 ...

随机推荐

  1. POJ 2104 K-th Number ( 求取区间 K 大值 || 主席树 || 离线线段树)

    题意 : 给出一个含有 N 个数的序列,然后有 M 次问询,每次问询包含 ( L, R, K ) 要求你给出 L 到 R 这个区间的第 K 大是几 分析 : 求取区间 K 大值是个经典的问题,可以使用 ...

  2. HDU 6616 Divide the Stones

    目录 题面 中文题意 比赛惨状 我的走不通的思路 \(m\)是偶数的情况 \(m\)是奇数的情况 题解的思路 另一些思路 源代码 题面 Time limit 3000 ms Memory limit ...

  3. jquery ajax实现文件上传

    test5.html <html> <head> <meta http-equiv="Content-Type" content="text ...

  4. Nginx 作为代理服务与负载均衡

    代理服务 代理一代为办理(代理理财.代理收货等等) 代理区别 区别在于代理的对象不一样 正向代理代理的对象是客户端 反向代理代理的对象是服务端 反向代理配置 server { listen 80; s ...

  5. 【转】gl_NormalMatrix

    关于为什么对法线变换时要使用变换矩阵的转置的逆,而不能像变换顶点那样直接使用变换矩阵 https://www.cnblogs.com/bigdudu/articles/4191042.html 注意文 ...

  6. FlexPaper做的类似百度文库的效果

    这里有个误区,虽然我的截图这里有个FlexPaperViewer.swf,   但是这个文件还是要放在网站根目录一个. <%@ Page Language="C#" Auto ...

  7. DesignWare I2C模块的验证

    I2C通信协议主要同一块板上芯片间的通信,因此速度不是很高.SCL为时钟线,SDA为数据线.时钟由主设备发送给从设备,数据可以在两设备间互传. 在测试DW_I2C模块时,如果外面都包了一层,在tb中只 ...

  8. 无法绕开的cut, awk, sed命令

    linux命令的选项和选项后面的值的方式: 如果用 短选项, 选项值就放在短选项的后面, 如果用长选项, 值就用等于的方式. 最重要的是, 短选项后面的值, 跟短选项之间, 可以用空格, 也可以紧接着 ...

  9. CGI FastCGI WSGI 解析

    我们将服务端程序分为了web服务器和应用程序服务器. web服务器是用于处理HTML文件,让客户可以通过浏览器进行访问.主流的有apache,IIS,nginx,lghttpd等. 应用服务器处理业务 ...

  10. 【原创】基于phpGrace+uniApp开发之:5.登录界面增加图片验证码

    1.目的: 采用phpGrace中的图片验证码,在用户名+密码登录时使用图片验证码进行验证. 2.文档地址: 图片验证码的文档地址:http://www.phpgrace.com/tools/info ...