当前位置: 首页 > news >正文

使用Python 访问Neo4J 数据库

前期准备工作

安装Neo4j Python库

要与Neo4j数据库交互,你需要安装Neo4j的Python客户端库。可以通过以下命令安装:

pip install neo4j

基本步骤

以下是使用Neo4j的基本步骤,每一步都包含了详细的说明:

引入库
定义连接参数
创建驱动实例
创建会话
执行Cypher查询
处理查询结果
关闭会话和驱动
其它业务操作

代码示例

2.1 执行单行查询语句

以下是一个执行单行Cypher查询语句的示例,用于查询数据库中的前五个节点。

from neo4j import GraphDatabase# 连接Neo4j数据库
uri = "bolt://192.168.0.104:7687"  # Neo4j的地址,通常为 localhost 或者实际服务器的IP
username = "neo4j"              # 用户名,默认通常是 neo4j
password = "12345678"           # 密码# 创建驱动实例
driver = GraphDatabase.driver(uri, auth=(username, password))# 创建一个会话
with driver.session() as session:# 写一个Cypher查询语句query = "MATCH (n) RETURN n LIMIT 5"  # 查询前五个节点# 执行查询result = session.run(query)# 处理结果for record in result:print(record["n"])

2.2 执行多行查询语句

Neo4j要求每个查询只有一个语句。如果想在一个会话中执行多个Cypher语句,需要将它们分开执行。以下是分开执行的示例:

from neo4j import GraphDatabase# 连接Neo4j数据库
uri = "bolt://192.168.0.104:7687"
username = "neo4j"
password = "12345678"# 尝试连接数据库
try:driver = GraphDatabase.driver(uri, auth=(username, password))with driver.session() as session:# 分别执行每个Cypher查询语句queries = ["CREATE (biological:Biological {name: 'Biological'})","CREATE (plant:Plant {name: 'Plant1'})","CREATE (herb:Herb {name: 'Herb1'})","CREATE (animal:Animal {name: 'Animal'})","CREATE (dog:Animal {name: 'Dog'})","CREATE (cow:Animal {name: 'Cow'})","MATCH (herb:Herb), (plant:Plant) WHERE herb.name = 'Herb1' AND plant.name = 'Plant1' CREATE (herb)-[:IS_A]->(plant)","MATCH (plant:Plant), (biological:Biological) WHERE plant.name = 'Plant1' AND biological.name = 'Biological' CREATE (plant)-[:IS_A]->(biological)","MATCH (animal:Animal), (biological:Biological) WHERE animal.name = 'Animal' AND biological.name = 'Biological' CREATE (animal)-[:IS_A]->(biological)","MATCH (dog:Animal), (animal:Animal) WHERE dog.name = 'Dog' AND animal.name = 'Animal' CREATE (dog)-[:IS_A]->(animal)","MATCH (cow:Animal), (animal:Animal) WHERE cow.name = 'Cow' AND animal.name = 'Animal' CREATE (cow)-[:IS_A]->(animal)","MATCH (cow:Animal {name: 'Cow'}), (herb:Herb {name: 'Herb1'}) WHERE cow.name = 'Cow' AND herb.name = 'Herb1' CREATE (cow)-[:EATS]->(herb)"]# 执行每个查询for query in queries:session.run(query)except Exception as e:print(f"An error occurred: {e}")
finally:# 确保驱动程序被关闭driver.close()

2.3 错误处理和资源管理

在上述示例中,我们使用了 try...except...finally 结构来处理可能发生的异常,并确保数据库连接在操作完成后被正确关闭。这是一种良好的编程实践,可以防止资源泄露和未处理的异常。

2.4 事务管理

在Neo4j中,每个会话都是一个事务。你可以在一个会话中执行多个Cypher语句,但是每个语句都是独立的事务。如果你需要执行一系列操作作为一个单一的事务,你可以使用事务API来显式地管理事务。

2.5 关闭数据库连接

在完成所有数据库操作后,确保关闭数据库连接是一个重要的步骤。这可以通过 finally 块中的 driver.close() 来实现,如上述示例所示。


http://www.mrgr.cn/news/13181.html

相关文章:

  • mp总结 mybatisPlus
  • 07 - procfs
  • 【线程池】
  • 【计算机网络】计算机网络的性能指标
  • 算法笔试-编程练习-H-02-24
  • 愿遗忘与你同在:使用 Noisy Labels 学习的替代重播
  • 基于SSM+小程序的旅游社交登录管理系统(旅游4)(源码+sql脚本+视频导入教程+文档)
  • 【开端】 进行页面升级或维护时不影响用户体验NGINX配置
  • 常量指针与指针常量
  • 【深入解析】最优控制中的Bellman方程——从决策到最优路径的探索
  • Qt_两种创建组件的方式-通过图形化-通过代码
  • [HZNUCTF 2023 preliminary]flask
  • Linux -- git
  • C++ | Leetcode C++题解之第377题组合总和IV
  • Web3常见概念
  • ip命令简解
  • docker容器基本命令、docker进入容器的指令、容器的备份、镜像底层原理、使用commit命令制造镜像、将镜像推送到阿里云镜像仓库与私服仓库
  • 【Go - interface, 强类型语言中的任意类型 】
  • 如何设置代理ip地址怎么使用ip代理上网
  • 自动查询获取实时返回值 JavaScript JQuery on(),change(),trigger()