使用APOC技术从MYSQL数据库导数据到Neo4j图数据库(JDBC)
Neo4j 数据导入
一、安装与部署Neo4j
<p> 直接在官网下载安装包安装,解压即可。</p>
</li>
<li>
<p> </p> <p><strong>2.mysql 数据导入neo4j的jar包</strong></p> <pre class="has" name="code"><code class="hljs css"><span class="hljs-selector-tag">apoc-3</span><span class="hljs-selector-class">.4</span><span class="hljs-selector-class">.0</span><span class="hljs-selector-class">.1-all</span><span class="hljs-selector-class">.jar</span> <span class="hljs-selector-tag">mysql-connector-java-8</span><span class="hljs-selector-class">.0</span><span class="hljs-selector-class">.8-dmr</span><span class="hljs-selector-class">.jar</span></code><div class="hljs-button signin" data-title="登录后复制" onclick="hljs.signin(event)"></div></pre> <p> </p>
</li>
<li>
<p><strong>3.将对应jar包放在Neo4j的安装目录plugins文件目录里,然后在Neo4j的conf目录里的neo4j.conf文件的最后面加上</strong></p> <p>dbms.security.procedures.unrestricted=apoc.*,algo.*</p>
</li>
<li>
<p>apoc.import.file.enabled=true<br>
apoc.export.file.enabled=true</p>
</li>
<li>
<p>注意:(APOC jar包要与neo4j版本对应,否则启动Neo4j有可能出现无法连接这种情况 我这里用到的Neo4j版本为3.4.6 APOC为3.4.0 本人曾经在Neo4j-3.5.0版本plugins文件目录里 添加APOC-3.4版本,出现启动Neo4j无法连接这种情况 )</p>
</li>
<li>
<p><strong>4.程序:</strong></p>
</li>
<li>
<pre class="has" name="code"><code class="hljs swift"><ol class="hljs-ln" style="width:2869px"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">package com.dataexa.neo4j.test;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-keyword">import</span> org.neo4j.driver.v1.AuthTokens;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-keyword">import</span> org.neo4j.driver.v1.Driver;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-keyword">import</span> org.neo4j.driver.v1.GraphDatabase;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-keyword">import</span> org.neo4j.driver.v1.Session;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Connect</span> </span>{</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> void main(<span class="hljs-type">String</span>[] args) {</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-type">Driver</span> driver = <span class="hljs-type">GraphDatabase</span>.driver(<span class="hljs-string">"bolt://localhost:7687"</span>, <span class="hljs-type">AuthTokens</span>.basic(<span class="hljs-string">"neo4j"</span>, <span class="hljs-string">"root"</span>));</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-type">Session</span> session = driver.session();</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-type">String</span> cypher = <span class="hljs-string">"create constraint on (n:ITEM) ASSERT n.itemid is unique"</span>; <span class="hljs-comment">//创建唯一索引,这样可以更快的导入数据</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> session.run(cypher);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="13"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> cypher = <span class="hljs-string">"CALL apoc.load.jdbc(\n"</span> +</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="14"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-string">" 'jdbc:mysql://localhost/abc(数据库名)?user=root(数据库的登录用户)&password=root(数据库登录密码)&useUnicode=true&characterEncoding=utf8',\n"</span> +</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="15"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-string">" 'select * from yntest(表名)'\n"</span> +</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="16"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-string">") YIELD row\n"</span> +</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="17"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-string">"CREATE (:People { cardNo :row.cardNo,name : row.name,sex : row.sex,"</span> +</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="18"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-string">"birthday : row.birthday,phone : row.phone})"</span> +</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="19"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-string">"CREATE (:People1 { cardNo1 : row.cardNo1,name1 : row.name1,"</span> +</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="20"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-string">"sex1 : row.sex1,birthday1 : row.birthday1,phone1 : row.phone1})"</span> +</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="21"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-string">"CREATE (:People)-[r:relation{edge:'铁路同行',txcs:row.txcs}]->(People1)"</span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="22"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">///////"CREATE (:People { cardNo :row.cardNo,name : row.name,sex : row.sex," + "birthday : row.birthday,phone : row.phone})" + "CREATE (:People1 { cardNo1 : row.cardNo1,name1 : row.name1," + "sex1 : row.sex1,birthday1 : row.birthday1,phone1 : row.phone1})" + "CREATE (:People)-[r:relation{edge:'铁路同行',txcs:row.txcs}]->(People1)";</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="23"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">//////以上是mysql中的表开头字段</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="24"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> session.run(cypher);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="25"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> session.close();</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="26"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> driver.close();</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="27"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="28"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">}</div></div></li></ol></code><div class="hljs-button signin" data-title="登录后复制" onclick="hljs.signin(event)"></div></pre>
</li>
原文地址:https://blog.csdn.net/q1712085770/article/details/85292376?tdsourcetag=s_pcqq_aiomsg
使用APOC技术从MYSQL数据库导数据到Neo4j图数据库(JDBC)的更多相关文章
- NEO4J 图数据库使用APOC数据导入
Neo4j 数据导入 一.安装与部署 直接在官网下载安装包安装,解压即可. 二.下载相应的jar包 apoc 包下载链接: https://github.com/neo4j-contrib/ne ...
- mysql分批导出数据和分批导入数据库
mysql分批导出数据和分批导入数据库 由于某些原因,比如说测试环境有很多库,需要迁移到新的环境中,不需要导出系统库的数据.而数据库又有好多,如何才能将每个库导出到独立的文件中呢?导入到一个文件的话, ...
- MySQL 服务器变量 数据操作DML-视图
原文:MySQL 服务器变量 数据操作DML-视图 SQL语言的组成部分 常见分类: DDL:数据定义语言 DCL:数据控制语言,如授权 DML:数据操作语言 其它分类: 完整性定义语言: DDL的一 ...
- 使用neo4j图数据库的import工具导入数据 -方法和注意事项
背景 最近我在尝试存储知识图谱的过程中,接触到了Neo4j图数据库,这里我摘取了一段Neo4j的简介: Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中.它是一个嵌 ...
- Neo4j图数据库从入门到精通(转)
add by zhj: 转载时,目录没整理好,还会跳转到原文 其实RDB也可以存储多对多的关系,使用的是中间表,GDB使用的是边,RDB中的实体存储在数据表,而GDB存储在节点.两者使用的底层技术不同 ...
- Neo4j图数据库管理系统开发笔记之一:Neo4j Java 工具包
1 应用开发概述 基于数据传输效率以及接口自定义等特殊性需求,我们暂时放弃使用Neo4j服务器版本,而是在Neo4j嵌入式版本的基础上进行一些封装性的开发.封装的重点,是解决Neo4j嵌入式版本Emb ...
- Neo4j资料 Neo4j教程 Neo4j视频教程 Neo4j 图数据库视频教程
课程发布地址 地址: 腾讯课堂<Neo4j 图数据库视频教程> https://ke.qq.com/course/327374?tuin=442d3e14 作者 庞国明,<Neo4j ...
- Neo4j视频教程 Neo4j 图数据库视频教程
课程名称 课程发布地址 地址: 腾讯课堂<Neo4j 图数据库视频教程> https://ke.qq.com/course/327374?tuin=442d3e14 作者 庞国明,< ...
- Neo4j教程 Neo4j视频教程 Neo4j 图数据库视频教程
课程发布地址 地址: 腾讯课堂<Neo4j 图数据库视频教程> https://ke.qq.com/course/327374?tuin=442d3e14 作者 庞国明,<Neo4j ...
随机推荐
- 在sublime上安装markdown插件(win10)
1.markdown插件安装 --ctrl+shift+p --在命令框中选中 package control:install package 选中它 按回车 --在命令框中输入 markdown, ...
- Java中JNI的使用详解第六篇:C/C++中的引用类型和Id的缓存
首先来看一下C/C++中的引用 从Java虚拟机创建的对象传到本地C/C++代码时会产生引用,根据Java的垃圾回收机制,只要有引用存在就不会触发该引用指向的Java对象的垃圾回收 第一.局部引用: ...
- NOIp2018集训test-10-6/test-10-7 (联考五day1/day2)
昨天考完月考,明天初赛,dcoi2017级今天终于开始停课准备noip了,大概没有比本弱校停课更晚的学校了吧.本来就够菜了,怕是要凉透哦. DAY1 T1石头剪刀布 据说爆搜随便做,但是我觉得我的O( ...
- shell 单引号&双引号的使用
使用双引号: shell> X='parameter' shell> echo "Hello $X" Hello parameter 单引号中嵌套单引号: shell& ...
- Python3数据分析与挖掘建模实战✍✍✍
Python3数据分析与挖掘建模实战 Python数据分析简介 Python入门 运行:cmd下"python hello.py" 基本命令: 第三方库 安装 Windows中 p ...
- USACO2006 Backward Digit Sums /// 全排列 oj24212
题目大意: 给出杨辉三角的顶点值M和底边数的个数 N (1 ≤ N ≤ 10) ,求出底边各个数的值,其中各个数范围都为1 ~ N 当N=4,M=16时可能是这样的 3 1 2 4 ...
- Django ORM 之F、Q查询与事务
返回ORM目录 Django ORM 内容目录 一.F.Q查询 二.事务 三.only与defer 一.F.Q查询 """ Product表中的数据: 1 橡皮 2 20 ...
- Django 前后端数据传输、ajax、分页器
返回ORM目录 Django ORM 内容目录: 一.MTV与MVC模式 二.多对多表三种创建方式 三.前后端传输数据 四.Ajax 五.批量插入数据 六.自定义分页器 一.MTV与MVC模式 M ...
- CF431E Chemistry Experiment
题意:有n个试管,有高度为hi的水银.操作1:将试管x中的水银高度改成y.操作2:将体积为v的水注入试管,求水位的高度?n,q<=1e5. 标程: #include<bits/stdc++ ...
- leetcood学习笔记-55-跳跃游戏
题目描述: 第一次提交: class Solution: def canJump(self, nums: List[int]) -> bool: if len(nums)<=1: retu ...