0
这是我第一次尝试使用java的Neo4j。我用maven来解决所有的依赖关系。我的代码看起来像这样。使用Java配置Neo4j
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
@FylmTM - 这是neo4j的第一次尝试。我真的不知道$ NEO_HOME的价值是什么(我会检查它)。如果我无法找到价值,请告诉我它是什么。我在Windows 7中安装了neo4j所有默认配置。 – Rammohan
您在创建嵌入式数据库的位置是一个奇怪的位置。几乎可以肯定,当你启动服务器时,它并不指向那个位置。首先三重检查。 – FrobberOfBits