Neo4j之入门例子

简介:

Neo4j是一个网络——面向图网络的数据库——也就是说,它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在图网络上而不是表中。图网络(从数学角度叫做图)是一个灵活的数据结构,可以应用更加敏捷和快速的开发模式。

嵌入式使用代码如下:

RelationshipType:

enum UserRelationship implements RelationshipType {
	FELLOW, BELONG
}

调用:

public static void main(String[] args) {
	String DB_PATH = "G:/neo4j/db/data1/";
	GraphDatabaseFactory factory = new GraphDatabaseFactory();

	GraphDatabaseService gds = factory.newEmbeddedDatabase(DB_PATH);
	GlobalGraphOperations ggo = GlobalGraphOperations.at(gds);
	Transaction tx = gds.beginTx();
	try {
		Node fromNode = gds.createNode();
		fromNode.setProperty("table", "person");
		fromNode.setProperty("name", "马云");
		Node toNode = gds.createNode();
		toNode.setProperty("table", "person");
		toNode.setProperty("name", "李彦宏");
		Relationship relationship = fromNode.createRelationshipTo(toNode,
			UserRelationship.FELLOW);
		List<String> eventList = new ArrayList<String>();
		eventList.add("2013福布斯中国富豪榜:李彦宏第三、马化腾第五、马云第八 ");
		eventList.add("李彦宏推轻应用马云入股浏览器 移动入口争夺暗战升级 ");

		relationship.setProperty("event", JSON.toJSONString(eventList));
		Node companyNode = gds.createNode();
		companyNode.setProperty("table", "company");
		companyNode.setProperty("name", "阿里巴巴");
		Relationship belongRelationship = fromNode.createRelationshipTo(companyNode,
			UserRelationship.BELONG);
		belongRelationship.setProperty("event", "马云如何掌控阿里巴巴? ");
		tx.success();
	} catch (Throwable e) {
		e.printStackTrace();
		tx.failure();
	} finally {
		tx.finish();
	}
	Iterator<Node> iterator = ggo.getAllNodes().iterator();
	while (iterator.hasNext()) {
		Node node = iterator.next();
		Iterator<String> keysIterator = node.getPropertyKeys().iterator();
		while (keysIterator.hasNext()) {
			String key = keysIterator.next();
			System.out.println(key + "->" + node.getProperty(key));
		}
		Iterator<Relationship> relationshipsIterator = node.getRelationships().iterator();
		while (relationshipsIterator.hasNext()) {
			Relationship relationships = relationshipsIterator.next();
			System.out.println("关系:" + relationships.getType());
		}
	}
	gds.shutdown();
}

maven依赖:

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.1.36</version>
</dependency>
<dependency>
	<groupId>org.neo4j</groupId>
	<artifactId>neo4j-cypher-dsl</artifactId>
	<version>1.9.M04</version>
</dependency>
<dependency>
	<groupId>org.neo4j</groupId>
	<artifactId>neo4j-kernel</artifactId>
	<version>${neo4j.version}</version>
</dependency>
<dependency>
	<groupId>org.neo4j</groupId>
	<artifactId>neo4j-cypher</artifactId>
	<version>${neo4j.version}</version>
</dependency>
<dependency>
	<groupId>org.neo4j</groupId>
	<artifactId>neo4j-com</artifactId>
	<version>${neo4j.version}</version>
</dependency>
<dependency>
	<groupId>org.neo4j</groupId>
	<artifactId>neo4j-shell</artifactId>
	<version>${neo4j.version}</version>
</dependency>
<dependency>
	<groupId>org.neo4j</groupId>
	<artifactId>neo4j</artifactId>
	<version>${neo4j.version}</version>
</dependency>
<properties>
	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	<neo4j.version>1.9.M04</neo4j.version>
</properties>

猜你喜欢

转载自snv.iteye.com/blog/1963309
今日推荐