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