使用APOC技术从MYSQL数据库导数据到Neo4j图数据库(JDBC)

时间:2019-08-22
本文章向大家介绍使用APOC技术从MYSQL数据库导数据到Neo4j图数据库(JDBC),主要包括使用APOC技术从MYSQL数据库导数据到Neo4j图数据库(JDBC)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
  •                                                  Neo4j 数据导入

  • 一、安装与部署Neo4j

                   直接在官网下载安装包安装,解压即可。

  • 2.mysql 数据导入neo4j的jar包

    apoc-3.4.0.1-all.jar    mysql-connector-java-8.0.8-dmr.jar
  • 3.将对应jar包放在Neo4j的安装目录plugins文件目录里,然后在Neo4j的conf目录里的neo4j.conf文件的最后面加上

    dbms.security.procedures.unrestricted=apoc.*,algo.*

  • apoc.import.file.enabled=true
    apoc.export.file.enabled=true

  • 注意:(APOC jar包要与neo4j版本对应,否则启动Neo4j有可能出现无法连接这种情况                                                                         我这里用到的Neo4j版本为3.4.6  APOC为3.4.0                                                                                                                                    本人曾经在Neo4j-3.5.0版本plugins文件目录里 添加APOC-3.4版本,出现启动Neo4j无法连接这种情况  )

  • 4.程序:

    1. package com.dataexa.neo4j.test;
    2. import org.neo4j.driver.v1.AuthTokens;
    3. import org.neo4j.driver.v1.Driver;
    4. import org.neo4j.driver.v1.GraphDatabase;
    5. import org.neo4j.driver.v1.Session;
    6. public class Connect {
    7. public static void main(String[] args) {
    8. Driver driver = GraphDatabase.driver("bolt://localhost:7687", AuthTokens.basic("neo4j", "root"));
    9. Session session = driver.session();
    10. String cypher = "create constraint on (n:ITEM) ASSERT n.itemid is unique"; //创建唯一索引,这样可以更快的导入数据
    11. session.run(cypher);
    12. cypher = "CALL apoc.load.jdbc(\n" +
    13. " 'jdbc:mysql://localhost/abc(数据库名)?user=root(数据库的登录用户)&password=root(数据库登录密码)&useUnicode=true&characterEncoding=utf8',\n" +
    14. " 'select * from yntest(表名)'\n" +
    15. ") YIELD row\n" +
    16. "CREATE (:People { cardNo :row.cardNo,name : row.name,sex : row.sex," +
    17. "birthday : row.birthday,phone : row.phone})" +
    18. "CREATE (:People1 { cardNo1 : row.cardNo1,name1 : row.name1," +
    19. "sex1 : row.sex1,birthday1 : row.birthday1,phone1 : row.phone1})" +
    20. "CREATE (:People)-[r:relation{edge:'铁路同行',txcs:row.txcs}]->(People1)";
    21. ///////"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)";
    22. //////以上是mysql中的表开头字段
    23. session.run(cypher);
    24. session.close();
    25. driver.close();
    26. }
    27. }
原文地址:https://blog.csdn.net/q1712085770/article/details/85292376?tdsourcetag=s_pcqq_aiomsg

原文地址:https://www.cnblogs.com/jpfss/p/11393823.html