1. Neo4j介绍

1.1 数据库划分


  金融企业使用Oracle和DB2比较多。

1.2 图数据库的数据存储形式

  实体(Node,用圆圈表示)、实体分类(Node Label,为实体括号中的结果)、关系(Relationship,用箭头表示)、关系类型(Relationship type )、属性。

在这个例子中,我们在Node的Circle中的整数表示了每个Node的id属性。

1.3 图数据库存储的特点

  1. 它包括节点和关系。
  2. 节点可以有属性(键值对形式存储,可以为多个)。
  3. 节点可以有一个或者多个标签。
  4. 关系有名字和方向,并总是有一个开始节点和结束节点。
  5. 关系也可以有属性。

2. 安装和使用Neo4j

2.1 安装和启动Neo4j

  Neo4j的官网是neo4j.com。点击DOWNLOAD NEO4J。

  进入之后,点击Download Neo4j Server。

  下载社区版本,根据操作系统进行选择(建议使用Linux):

  在Linux安装和配置可参考博客:https://blog.csdn.net/u013946356/article/details/81736232。Windows安装和配置可参考博客:https://www.cnblogs.com/ljhdo/p/5521577.html。

  输入bin/neo4j start进行启动服务。

  在浏览器中输入http://服务器ip地址:7474/进行访问。第一次需要修改默认密码(账户为neo4j,默认密码为neo4j)。

2.2 初始化数据集

  数据集下载地址为:https://download.csdn.net/download/herosunly/12054896。

  初始化数据集命令为:bin/neo4j-admin import --mode csv --database person_phone_application.db --nodes Person.csv --nodes Phone.csv --nodes Application.csv --relationships Person_Phone.csv --relationships Phone_Phone.csv --relationships Person_Application.csv --relationships Person_Relation.csv

  重命名person_phone_application.db文件夹为graph.db,先关闭服务./bin/neo4j stop,再打开服务./bin/neo4j start。

  导入成功的界面如下所示:

3. APOC

  APOC was also the first bundled A Package Of Component for Neo4j in 2009.APOC是Neo4j中的一堆组件。

3.1 安装APOC

  将mysql-connector-java-5.1.21.jar和apoc-3.4.0.3-all.jar放到plugins目录下即可。其中mysql-connector是用来进行数据初始化的,即把MySQL数据库中的数据导入到Neo4j中。

3.2 APOC功能


  虚拟图类似于MySQL中的中间表。

4. APOC数据集成-JDBC

  apoc.load.jdbc:可以访问提供JDBC(Java Database Connectivity)驱动程序的数据库,并执行查询。将结果变成以一行数据为单位的数据流。然后可以使用这些行来更新或创建图形数据结构。

4.1 APOC JDBC语法

  需要提前安装MySQL,可参考:https://www.runoob.com/mysql/mysql-install.html

  在Centos环境下启动MySQL过程中(systemctl start mysqld),可能会出错,可以通过cat /var/log/mysqld.log进行查看。如果出现must be writable的错误,就是权限问题,可以通过chmod -R 777 /var/lib/mysql进行修改。

call apoc.load.jdbc('jdbc:mysql://{IP}:{PORT}/{DBNAME}? user={USERNAME}&password={PASSWORD} ","{TABLENAME}") yield row

  创建节点的语句,使用row.调用每一行中的具体字段。

  结合之前的数据:

call apoc.load.jdbc('jdbc:mysql://{IP}:{PORT}/{DBNAME}? user={USERNAME}&password={PASSWORD} ","{TABLENAME}") yield rowcreate (b:Black{number:row.black_id, type:row.type})

  Black实体中有两个属性,一个是number,一个是type。

  实体可以根据颜色可以得到它是否是新创建的,灰色的是新创建的,而红色的是之前导入的。可以根据自己需要进行修改颜色。

Neo4j、APOC、JDBC相关推荐

  1. neo4j安装APOC、aglo插件

    安装方法 只要下载.jar这一个插件包就好了,将下载好的.jar文件直接放到neo4j安装目录下的plugins文件夹目录下,再修改一下配置文件就可以了. 1.插件下载: APOC 国内地址:http ...

  2. 用JDBC写一个学生管理系统(添加、删除、修改、查询学生信息)(二)

    本文上接用JDBC写一个学生管理系统(添加.删除.修改.查询学生信息) 这次主要是对上一文中的查询方法做一下调整,用创建内部类的方法来实现学生信息的查询. 我们先要定义一个接口IRowMapper: ...

  3. 用JDBC写一个学生管理系统(添加、删除、修改、查询学生信息)

    首先需要用Navicat Premium创建一个student表 用Java连接好MySQL数据库(需要copy一个mysql-connector-java-5.1.44-bin.jar包,该包可在网 ...

  4. Java EE---通过Spring JDBC实现数据库的增、删、改、查

    Spring JDBC之update.query方法 1.项目清单 2.全部代码 2.1.student 2.2.stuDao 2.3.applicationContext.xml 2.4.test ...

  5. Spring配置JDBC连接Orcale、MySql、sqlserver

    阅读指南:本文章主要讲述如何在Spring框架中配置JDBC连接方式连接Oracle.Mysql.SqlServer. 原理如下: 一.导包 连接oracle11g所需的jar包:ojdbc6.jar ...

  6. springboot 引入jdbc驱动_SpringBoot整合jdbc、durid、mybatis详解,数据库的连接就是这么简单...

    SpringBoot底层统一采用SpringData处理数据库,这一章主要来讲一下SpringBoot整合jdbc.durid.mybatis的方式. (一)整合jdbc 整合jdbc主要有三步: 1 ...

  7. Hive Serde、Beeline、JDBC

    一.Hive Serde 用于做序列化和反序列化,构建在数据存储和执行引擎之间,对二者实现解耦. 创建表的2种规则row format:delimited和serde,正则匹配 创建表: CREATE ...

  8. JDBC常用连接写法(包括MySQL、Oracle、Sybase、SQLServer、DB2)

    本文引用自CKJ-CLARK<JDBC常用连接写法(包括MySQL.Oracle.Sybase.SQLServer.DB2)> http://apps.hi.baidu.com/share ...

  9. Hibernate与JDBC、EJB、JDO的比较

    常用的数据库操作包括:JDBC.EJB.JDO以及Hibernate.它的各有优缺点: (1) JDBC:多数Java开发人员是用JDBC来和数据库进行通信,它可以通过DAO模式进行改善和提高.但这种 ...

最新文章

  1. 每日算法练习之最大公约数最小公倍数
  2. 如何知道自己的研究课题是不是领域热点?
  3. Openssl-MD5
  4. 基于jsp+mysql+mybatis+Spring boot简单学生成绩信息管理系统
  5. QString 字符编码
  6. CodeForces 173B Chamber of Secrets spfa
  7. HTTPS的七个误解
  8. ES6_对象简洁语法_note
  9. [Java] 蓝桥杯ALGO-115 算法训练 和为T
  10. java项目打成war包,使用ide打包部署在tomcat中
  11. python为什么无法保存然后弹跳出来_python-从字典中弹出键,值对的整洁方法?
  12. 关于内存地址和内存空间的理解。
  13. liunx Swap 分区的作用
  14. PHP读dwg,dwg文件阅读器
  15. 关于Dve C++——[Warning] pointer to a function used inarithmetic
  16. Ac-RADADADARADADADA-NH2
  17. (一)基于知识图谱的医疗问答系统(实例+代码理解)保姆级教程
  18. HTML5 body设置全屏背景图片 如何让body的背景图片自适应整个屏----实战经验 1
  19. 判断MySQL安装是否成功的两种验证方法
  20. 如何将Blender模型导入Panda3d

热门文章

  1. java链接打印机,热敏式的打印机ESC打印,Socket链接,打印简单教程实例,Gprinter
  2. layui导出excel
  3. TDengine快速入门
  4. 电动车选购和防盗指南
  5. Office破解excel的代码不适用于WPS
  6. win10 postgresql10.20环境变量配置
  7. 使用Linux编写最简单的hello world驱动程序
  8. 5G年代大数据改动对运营商精准大数据的影响
  9. th 和 td的区别
  10. 在 Cacti 下利用 SNMP Informant 实现 Windows 监控