【发布时间】: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 服务器安装了所有默认配置。
我正在执行以下步骤来检查数据是否已添加到数据库中:
- 执行以上代码
- 启动社区服务器
- 查看网址http://localhost:7474/browser/
- 执行查询“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