Neo4j:入门基础(六)之从RDBMS导入数据

    科技2022-07-14  134

    前言

        本文以MySQL为例,数据来自https://blog.csdn.net/appleyk/article/details/80331997

     

    配置

        APOC [下载地址]

        MySQL JDBC [下载地址]

        把两个jar包放在neo4j安装目录的plugins文件夹下

     

    操作

        1. 启动neo4j数据库

        2. 运行Cypher语句

    CALL apoc.load.jdbc( 'jdbc:mysql://localhost:3306/movie?user=root&password=123456&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai', 'select * from movie' )YIELD row CREATE(p:Movie{mid:toInteger(row.mid),title:row.title,introduction:row.introduction,rating:toFloat(row.rating),releasedate:row.releasedate})

        3. 同理导入其他数据和关系

    CALL apoc.load.jdbc( 'jdbc:mysql://localhost:3306/movie?user=root&password=123456&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai', 'select * from genre' )YIELD row CREATE(p:Genre{gid:toInteger(row.gid),gname:row.gname}) CALL apoc.load.jdbc( 'jdbc:mysql://localhost:3306/movie?user=root&password=123456&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai', 'select * from person' )YIELD row CREATE(p:Actor{pid:toInteger(row.pid),birth:row.birth,death:row.death,name:row.name,englishName:row.english_name,biography:row.biography,birthplace:row.birthplace}) CALL apoc.load.jdbc( 'jdbc:mysql://localhost:3306/movie?user=root&password=123456&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai', 'select * from person_to_movie' )YIELD row MATCH(from:Actor{pid:toInteger(row.pid)}),(to:Movie{mid:toInteger(row.mid)}) MERGE (from)-[r:actedin{pid:toInteger(row.pid),mid:toInteger(row.mid)}]->(to) CALL apoc.load.jdbc( 'jdbc:mysql://localhost:3306/movie?user=root&password=123456&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai', 'select * from movie_to_genre' )YIELD row MATCH(from:Movie{mid:toInteger(row.mid)}),(to:Genre{gid:toInteger(row.gid)}) MERGE (from)-[r:is{mid:toInteger(row.mid),gid:toInteger(row.gid)}]->(to)

        4. 查看效果

     

    Processed: 0.008, SQL: 8