简介:
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); ListeventList = new ArrayList (); 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 iterator = ggo.getAllNodes().iterator(); while (iterator.hasNext()) { Node node = iterator.next(); Iterator keysIterator = node.getPropertyKeys().iterator(); while (keysIterator.hasNext()) { String key = keysIterator.next(); System.out.println(key + "->" + node.getProperty(key)); } Iterator relationshipsIterator = node.getRelationships().iterator(); while (relationshipsIterator.hasNext()) { Relationship relationships = relationshipsIterator.next(); System.out.println("关系:" + relationships.getType()); } } gds.shutdown();}
maven依赖:
com.alibaba fastjson 1.1.36 org.neo4j neo4j-cypher-dsl 1.9.M04 org.neo4j neo4j-kernel ${neo4j.version} org.neo4j neo4j-cypher ${neo4j.version} org.neo4j neo4j-com ${neo4j.version} org.neo4j neo4j-shell ${neo4j.version} org.neo4j neo4j ${neo4j.version} UTF-8 1.9.M04