【问题标题】:Configure Neo4j with Java使用 Java 配置 Neo4j
【发布时间】:2015-11-15 06:33:17
【问题描述】:

这是我第一次使用 Java 尝试 Neo4j。我已经使用 maven 来解决所有依赖项。我的代码如下所示。

package com.hp.neo4jdemo;

import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Label;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Relationship;
import org.neo4j.graphdb.RelationshipType;
import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;

public class Main {

    public enum NodeType implements Label {
        Person, Course;
    }

    public enum RelationType implements RelationshipType {
        Knows, BelongsTo
    }

    public static void main(String[] args) {
        GraphDatabaseFactory graphDatabaseFactory = new GraphDatabaseFactory();
        GraphDatabaseService graphDb = graphDatabaseFactory.newEmbeddedDatabase("C:\\Program Files\\Neo4j Community");

        try(Transaction tx = graphDb.beginTx()) {
            Node bobNode = graphDb.createNode(NodeType.Person);
            bobNode.setProperty("PId", 5001);
            bobNode.setProperty("Name", "Bob");
            bobNode.setProperty("Age", 23);

            Node aliceNode = graphDb.createNode(NodeType.Person);
            aliceNode.setProperty("PId", 5002);
            aliceNode.setProperty("Name", "Alice");

            Node eveNode = graphDb.createNode(NodeType.Person);
            eveNode.setProperty("Name", "Eve");

            Node itNode = graphDb.createNode(NodeType.Course);
            itNode.setProperty("Id", 1);
            itNode.setProperty("Name", "IT Beginners");
            itNode.setProperty("Location", "Room 153");

            Node electronicsNode = graphDb.createNode(NodeType.Course);
            electronicsNode.setProperty("Name", "Electronics Advanced");

            bobNode.createRelationshipTo(aliceNode, RelationType.Knows);

            Relationship bobRelIt = bobNode.createRelationshipTo(itNode, RelationType.BelongsTo);
            bobRelIt.setProperty("Function", "Student");

            Relationship bobRelElectronics = bobNode.createRelationshipTo(electronicsNode, RelationType.BelongsTo);
            bobRelElectronics.setProperty("Function", "Supply Teacher");

            Relationship aliceRelIt = aliceNode.createRelationshipTo(itNode, RelationType.BelongsTo);
            aliceRelIt.setProperty("Function", "Teacher");

            tx.success();
        }
        graphDb.shutdown();
    }
}

当我运行代码时,它会成功执行,但是当我从后端交叉检查节点时,我看不到任何节点。

我正在使用 Windows 7 64 位和 Neo4j 社区服务器。 Neo4j 服务器安装了所有默认配置。

我正在执行以下步骤来检查数据是否已添加到数据库中:

  1. 执行以上代码
  2. 启动社区服务器
  3. 查看网址http://localhost:7474/browser/
  4. 执行查询“MATCH(n) RETURN n;”不返回任何节点

谁能告诉我哪里出错了或者配置有问题。

【问题讨论】:

  • 你应该检查当你创建 EmbeddedGraphDatabase 路径实际上指向数据库。通常数据库存储在$HEO_HOME/data/graph.db 文件夹中。另外 - 考虑使用工具连接到 Neo4j 服务器,而不是使用嵌入式数据库。
  • @FylmTM - 这是 neo4j 的第一次尝试。我真的不知道 $NEO_HOME 的价值是什么(不过我会检查一下)。如果我无法找出价值,请告诉我它是什么。我已经在 windows 7 中安装了所有默认配置的 neo4j。
  • 创建嵌入式数据库的位置很奇怪。几乎可以肯定,当您启动服务器时,它并没有指向该位置。首先三重检查。
  • 我不知道位置。你能告诉我它可能在哪里吗?我正在使用所有默认配置。

标签: java maven neo4j spring-data-neo4j graph-databases


【解决方案1】:

替换代码 GraphDatabaseService graphDb = graphDatabaseFactory.newEmbeddedDatabase("C:\Program Files\Neo4j Community"); 对于

GraphDatabaseService graphDb = graphDatabaseFactory.newEmbeddedDatabase("C:/Program Files/Neo4j Community");

我也可以知道如何为您的系统设置 noe4j 环境路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-29
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 2012-06-04
    相关资源
    最近更新 更多