批量导入数据到neo4j图数据库

一、简介

    从sqlserver中获取数据,根据类型建立节点和关系。

    后台:输入数字0,系统自动从0开始添加选定数据库的数据到neo4j;

    web:用户输入粮虫的ID或名字,系统自动搜索出此粮虫的全部信息,可在页面上进行修改,点击保存,数据库更新数据。

二、实现原理

1.JDBC连接SQLserver和neo4j数据库

    SQLserver:

批量导入数据到neo4j图数据库_第1张图片

     neo4j:

批量导入数据到neo4j图数据库_第2张图片

 所需jar包:

 SQLserver的连接直接用Java JDK自带的SQL。

批量导入数据到neo4j图数据库_第3张图片

2. 创建neo4j节点的模型(实体类)

    项目是关于粮虫信息的。所以节点包括:粮虫图片、id、名字、英文名、拉丁文名、虫种分布、危害方式、危害粮种、分类、形态特征、生活习性、防治经济意义、识别方法、防治要点、天敌。

    所以建立一个Java类,将上述粮虫的信息封装在类里面。批量导入数据到neo4j图数据库_第4张图片

3.从SQLserver中获取粮虫信息

String sql = "update pest1 set [图像]=?, [昆虫名]=?, [英文名]=?, [拉丁名]=?, " +
                "[虫种分布]=?, [危害方式]=?, [危害粮种]=?, [分类地位]=?, [形态特征]=?, " +
                "[生活习性]=?, [经济意义]=?, [识别]=? ,[防治要点]=?, [对应天敌]=? " +
                "where [昆虫编号]=?";

4.向neo4j中添加数据

public void createNode(NodeDO nodeDO) throws Exception {

        String cql = "MERGE(" + nodeDO.getName() + ":" + nodeDO.getLabel() + "{value: {value}})";
        session.run(cql, parameters("value", nodeDO.getProperties()));
    }

三、运行流程

批量导入数据到neo4j图数据库_第5张图片

 输入要导入的粮虫id,首次启动项目一般从0开始。

 开始查询数据,采用工厂模式,调用获取粮虫实例方法,批量导入数据到neo4j图数据库_第6张图片

    因为需要连接数据库,所以在与数据库连接的中间加一个代理层,抛出异常。批量导入数据到neo4j图数据库_第7张图片

    然后调用dao层的实现方法,根据id查询到粮虫。

    然后再根据粮虫的信息,实例化一个刚创建的Pest对象,返回对象。

    剩下的就是将Pest对象的信息加入neo4j数据库。

批量导入数据到neo4j图数据库_第8张图片

     在获取到粮虫的信息后,建立一个根节点。

批量导入数据到neo4j图数据库_第9张图片

    然后将创建一个节点的cql语句,封装到一个字符串数组cql[ ]中。

    然后这个粮虫的一些其他信息的添加也类似。

    同意属性的多个名词,或多个特点,分成多级节点。

    最后再执行这些cql语句:

批量导入数据到neo4j图数据库_第10张图片

 调用连接数据库的实现函数与连接SQLserver类似,代码就不展示了。

四、结果展示:

批量导入数据到neo4j图数据库_第11张图片

 五、结论

    使用图数据库能够更清晰、更便捷地存储、展示关系。

    能够实现根据关系快速的查找信息,在大数据时代是个不折不扣的利器。

 

你可能感兴趣的:(Java)