Neo4j-事务操作

Neo4j-事务操作

事务操作的本质就是ACID, 事务要么全是或者全否(原子性), 事务只能提交有效数据(一致性),当前事务操作的数据不允许被其他事务操作(隔离性),事务结束之前,任何数据都不会改变消失,只有事务结束了,数据才发生改变(持久性)。

数据库的操作是从开始连接-增删改查-关闭-事务这样一种顺序进行学习的,neo4j官方库的基础提供execute_query进行query查询的,这里面neo4j自动给没一个execute_query创建了一个事务,现在neo4j提供一个自己管理事务的操作session。

session官方的说法就是提供一个query的通道。query的执行放在一个函数内。也就是说session拥有回退撤销,加锁等功能。

from neo4j import GraphDatabase

url = "neo4j://localhost"
auth = ('neo4j', '123456')

# 定义一个使用session执行query的函数
def handle_query(session, query, query_args):
    result = session.run(query, query_args)
    return list(result)


# 利用session.execute_read/execute_write函数调用上面的函数,并将出session意外的参数传进去。
with GraphDatabase.driver(uri=url, auth=auth) as driver:
    with driver.session(database='neo4j') as session:
        query = "match (p:Person) where p.name starts with $filter return p.name as name order by name"
        parameters = {'filter':'Ali'}
        people = session.execute_read(handle_query, query, parameters)
        for person in people:
            print(person.data())
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值