使用Groovy完成Neo4j基本操作

使用Groovy完成Neo4j基本操作:启停数据库及事务,创建和修改节点,数据库遍历。

代码如下:

import org.neo4j.kernel.*
import org.neo4j.graphdb.*

ExpandoMetaClass.enableGlobally()
PropertyContainer.metaClass.getProperty = {name ->
                        delegate.getProperty(name)}
PropertyContainer.metaClass.setProperty = {name, val ->
                        delegate.setProperty(name, val)}
PropertyContainer.metaClass.getAt = {idx ->
                        delegate.getProperty(name)}

db = new EmbeddedGraphDatabase("/sdb3/cur/data/neo1")
tx = db.beginTx()
createNode()
tx.success()
tx.finish()
db.shutdown()
def createNode() {
    def node1 = db.createNode()
    node1.message = 'Hello'
    def node2 = db.createNode()
    node2.message = 'world!'
    def knows = DynamicRelationshipType.withName("KNOWS")
    def rel = node1.createRelationshipTo(node2, knows)
    rel.message = 'brave Neo4j'
    println "${node1.message} ${rel.message} ${node2.message}"
}

db = new EmbeddedGraphDatabase("/sdb3/cur/data/neo1")
tx = db.beginTx()
findAllNodes()
tx.success()
tx.finish()
db.shutdown()
def findAllNodes() {
    db.allNodes.each {node ->
        println "${node}:"
        node.getPropertyKeys().each {key ->
            println "  ${key} = ${node[key]}"
        }
        node.getRelationships().each {rel ->
            println "  has rel ${rel.getType().name()}"
        }
    }
}
更多内容参见原文

你可能感兴趣的:(使用Groovy完成Neo4j基本操作)