参考No4j中文使用手册以及例子.doc完成了Hello World的小demo
想要了解Neo4j的朋友,建议去Neo4j官网学习,No4j中文使用手册以及例子已经过时了,有些部分已经改变,不建议继续拿来参考
代码:
import java.io.File;
import org.neo4j.graphdb.Direction;
import org.neo4j.graphdb.GraphDatabaseService;
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;
/**
* 创建、删除节点
* @author Administrator
*
*/
public class demo {
public static void main(String[] args) {
GraphDatabaseService graphDb;
Node firstNode;
Node secondNode;
Relationship relationship;
graphDb=new GraphDatabaseFactory().newEmbeddedDatabase(new File("E:\\neo4j\\neo4j1.db"));//数据库所在的本地目录页路径
registerShutdownHook(graphDb);
try (
Transaction tx=graphDb.beginTx();
){
//创建Nodes
firstNode=graphDb.createNode();
firstNode.setProperty("message", "hello,");
secondNode=graphDb.createNode();
secondNode.setProperty("message", "world!");
//创建关系
relationship=firstNode.createRelationshipTo(secondNode, RelTypes.KNOWS);
relationship.setProperty("message", "brave Neo4j");
System.out.println(firstNode.getProperty("message"));
System.out.println(relationship.getProperty("message"));
System.out.println(secondNode.getProperty("message"));
//删除关系 节点
// firstNode.getSingleRelationship(RelTypes.KNOWS, Direction.OUTGOING);//类型和方向 首先要删除关系 ,删除有关系的节点时会失败
// firstNode.delete();
// secondNode.delete();
//删除关系
tx.success();
} catch (Exception e) {
}
}
/**
* 确保neo4j正确关闭
* @param graphDb
*/
public static void registerShutdownHook(final GraphDatabaseService graphDb) {
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
graphDb.shutdown();
}
});
}
/**
* 枚举关系类型
* @author Administrator
*
*/
private static enum RelTypes implements RelationshipType{
KNOWS
}
}
运行结果:
注意部分:
代码中的
E:\\neo4j\\neo4j1.dbNeo4j数据库所在的本地路径
在运行程序时,Neo4j的数据库必须要处于关闭状态,否则运行代码就会报错: