0、概述

本文以Neo4j 3.3.9为基础,采用https://neo4j.com/docs/api/java-driver/current/给出的官方例子。下面大概记录下工程建立的过程,因为版本差异代码和官方给出的稍有差别。

1、使用eclipse,用自己安装的mvn新建一个mvn工程;

2、pox.xml

# 只复制Neo4j dependency即可,其它的东西不用变
<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.neo4j.study</groupId><artifactId>sample</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>sample</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><!-- https://mvnrepository.com/artifact/org.neo4j/neo4j-jdbc-driver --><dependency><groupId>org.neo4j.driver</groupId><artifactId>neo4j-java-driver</artifactId><version>1.7.2</version></dependency></dependencies>
</project>

3、SmallExample.java

package com.neo4j.study.sample;import java.util.Iterator;
import java.util.List;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.Transaction;
import org.neo4j.driver.v1.Value;
import org.neo4j.driver.v1.Values;
import org.neo4j.driver.v1.types.Node;
import org.neo4j.driver.v1.types.Path;
import org.neo4j.driver.v1.types.Relationship;/*** Hello world!**/
public class SmallExample {// Driver objects are thread-safe and are typically made available// application-wide.Driver driver;public SmallExample(String uri, String user, String password) {driver = GraphDatabase.driver("bolt://localhost:7687", AuthTokens.basic("neo4j", "5tgbhu8"));}private void addPerson(String name) {// Sessions are lightweight and disposable connection wrappers.try (Session session = driver.session()) {// Wrapping Cypher in an explicit transaction provides atomicity// and makes handling errors much easier.try (Transaction tx = session.beginTransaction()) {tx.run("Merge (a:People {name: {name}})", Values.parameters("name", name));tx.success(); // Mark this write as successful.}}}private void printPeople(String name) {Session session = driver.session();// Auto-commit transactions are a quick and easy way to wrap a read.StatementResult result = session.run("MATCH (a:People) WHERE a.name STARTS WITH {name} RETURN a.name as Name",Values.parameters("name", name));// Each Cypher execution returns a stream of records.while (result.hasNext()) {// Record 是一行记录,内容是什么取决于你return的东西Record record = result.next();System.out.println(record);// Values can be extracted from a record by index or name.
//                System.out.println(record.get("PeopleName").asString());System.out.println(String.format("%s", record.get("Name").asString()));}}private void getPeoples() {Session session = driver.session();// Auto-commit transactions are a quick and easy way to wrap a read.StatementResult result = session.run("MATCH (b:People) RETURN b");// Each Cypher execution returns a stream of records.while (result.hasNext()) {// Record 是一行记录,内容是什么取决于你return的东西Record record = result.next();System.out.println(record);List<Value> list = record.values();for (Value v : list) {Node n = v.asNode();System.out.println(n.labels().iterator().next() + "--" + n.id());for (String k : n.keys()) {System.out.println(k + "---" + n.get(k));}System.out.println("==========================");}// Values can be extracted from a record by index or name.
//            System.out.println(record.get("b").asString());}}private void getPeoplesAndRelation(){Session session = driver.session();// Auto-commit transactions are a quick and easy way to wrap a read.StatementResult result = session.run("MATCH p=(b:People)-[]-(c) RETURN p");
//                "MATCH (b:People)-[]-(c) RETURN b,c");// Each Cypher execution returns a stream of records.while (result.hasNext()){//Record 是一行记录,内容是什么取决于你return的东西Record record = result.next();System.out.println(record);List<Value> list = record.values();for(Value v : list){Path p = v.asPath();Node start = p.start();for(String k:start.keys()){System.out.println(k+"---"+start.get(k) );}System.out.println("==========================");Iterator i = p.relationships().iterator();while(i.hasNext()){
//                    System.out.println(i.next()+"--------------------------");Relationship r = (Relationship)i.next() ;System.out.println(r.type());System.out.println(r.startNodeId() + "->"+r.endNodeId());System.out.println(r.id());}Node end = p.end();for(String k:end.keys()){System.out.println(k+"---"+end.get(k) );}System.out.println("==========================");//                Node n = v.asNode();
//                System.out.println(n.labels().iterator().next()+"--"+n.id());
//
//                for(String k:n.keys())
//                {
//                    System.out.println(k+"---"+n.get(k) );
//                }
//                System.out.println("==========================");}// Values can be extracted from a record by index or name.
//            System.out.println(record.get("b").asString());}}public void close() {// Closing a driver immediately shuts down all open connections.driver.close();}public static void main(String[] args) {// very usefully from https://www.cnblogs.com/April1995/p/10526152.html
//      Driver driver = GraphDatabase.driver("bolt://localhost:7687", AuthTokens.basic("neo4j", "5tgbhu8"));
//      try (Session session = driver.session()) {
//          try (Transaction transaction = session.beginTransaction()) {
//              transaction.run("create(n:A1{NAME:{NAME},TITLE:{TITLE}})",
//                      Values.parameters("NAME", "xiaoming", "TITLE", "Wang"));
//              transaction.success();
//          }
//          try (Transaction tx = session.beginTransaction()) {
//              StatementResult result = tx.run(
//                      "match(a:A1) WHERE a.NAME = {NAME} RETURN a.NAME AS NAME,a.TITLE AS TITLE",
//                      Values.parameters("NAME", "xiaoming"));
//              while (result.hasNext()) {
//                  Record record = result.next();
//                  System.out.println(
//                          String.format("%s %s", record.get("TITLE").asString(), record.get("NAME").asString()));
//              }
//          }
//      }
//      driver.close();SmallExample example = new SmallExample("bolt://master:7687", "neo4j", "123456");
//      example.addPerson("Ada");
//      example.addPerson("Alice");
//      example.addPerson("Bob");
//      example.printPeople("A");
//      example.getPeoples();example.getPeoplesAndRelation();example.close();}
}

4、Neo4j可视化使用的技术

Neo4j的brower 展现是用:D3.js,查Neo4j,转为D3需要的格式,传给D3进行展示。

(五)官方Neo4j 3.3.9 Java API例子相关推荐

  1. 知识图谱java实现_知识图谱:neo4j(四)Java API

    知识图谱:neo4j(四)Java API 知识图谱:neo4j(四)Java API Neo4j Java API Neo4j 提供 JAVA API 以编程方式执行所有数据库操作.它支持两种类型的 ...

  2. 2021年大数据Kafka(五):❤️Kafka的java API编写❤️

    全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Kafka的java API编写 一.生产者代码 第一步: ...

  3. mybatis入门(五)之Java API

    转载自   mybatis Java API Java API 既然你已经知道如何配置 MyBatis 和创建映射文件,你就已经准备好来提升技能了.MyBatis 的 Java API 就是你收获你所 ...

  4. 容易忽视但是功能灰常强大的Java API(五. 二分查找)

    五. 二分查找 二分查找是一个高效的查找算法,在java的集合对象中也提供了二分查找的算法,如下面的java api接口: java.util.Arrays.binarySearch(java.lan ...

  5. sphinx java_把 sphinx 官方提供的 java api 添加到 maven 库

    如果客户端和服务器版本不一致可能会出现如下错误DEPRECATED: Do not call this method or, even better, use SphinxQL instead of ...

  6. Hbase高手之路 -- 第五章 -- HBase的Java API编程

    Hbase高手之路 – 第五章 – HBase的Java API编程 一. 需求与数据集 某自来水公司,需要存储大量的缴费明细数据,以下截取了缴费明细的一部分内容: 因为缴费明细的数据记录非常庞大,该 ...

  7. 2021年大数据ZooKeeper(五):ZooKeeper Java API操作

    目录 ZooKeeper Java API操作 引入maven坐标 节点的操作 ZooKeeper Java API操作 这里操作Zookeeper的JavaAPI使用的是一套zookeeper客户端 ...

  8. java官方 jax rs_jboss7 Java API for RESTful Web Services (JAX-RS) 官方文档

    原文:https://docs.jboss.org/author/display/AS7/Java+API+for+RESTful+Web+Services+(JAX-RS) Content Tuto ...

  9. 简单几步,将官方的Java API文档制作成chm格式文件!

    CHM格式的Java API 长什么样? 如何制作 进入Oracle官网下载Java API文档 将下载后的文档解压如下 使用CHMWriter制作 双击"CHMWriter.exe&quo ...

最新文章

  1. hadoop 基础环境搭建(一)
  2. 四说大数据时代“神话”:从大数据到深数据
  3. Java高版本编译低版本运行_Java高版本编译低版本运行错误(ConcurrentHashMap.keySet)...
  4. android Java BASE64编码和解码二:图片的编码和解码
  5. java中coverage怎么取消_别人家的ABM都是怎么成功的?
  6. clion的project区的字体以及自动排版的快捷键修改
  7. Java开发找工作最懵圈的问题:到底啥是分布式系统开发经验?
  8. [置顶] 第十七章——配置SQLServer(2)——32位和64位系统中的内存配置
  9. 「傻瓜」才能写出好代码!
  10. python数据框转化为矩阵_在Python中将系列重塑为Dataframe矩阵
  11. hibernate 批量插入 Batch
  12. ajax 上传图片进度条,ajax实现图片上传与进度条
  13. 8 EXCEL选择填充与粘贴
  14. 如何在excel中取消合并单元格后内容自动填充?
  15. 五分钟GO、KEGG和COG注释和富集分析
  16. 图书云小程序体验版1.0.1发布
  17. SIGGRAPH 2022最佳技术论文奖重磅出炉!北大陈宝权团队获荣誉提名
  18. Win7安装VMware
  19. 视频超分:TGA(Video Super-resolution with Temporal Group Attention)
  20. web端用canvas把航拍图片实际场景渲染在高德卫星地图上面

热门文章

  1. 前端学习(485):css
  2. 前端学习(220):伪元素选择器
  3. java学习(86):Interage方法compareto,parseint,intvalue
  4. centos安装ipconfig和telnet命令
  5. Linux 普通用户和超级用户的切换
  6. std::function和std::bind
  7. Leetcode 系列 | 反转链表
  8. Mysql索引是有序的吗_mysql组合索引的有序性转
  9. Hadoop学习之pig
  10. Maven--反应堆(Reactor)