使用Python通过JDBC操作数据库(达梦数据库)

简介: 使用Python通过JDBC操作数据库(达梦数据库)

在某些场景下,我们可能需要借助Python语言来连接和操作数据库。

一、环境准备

首先,确保已安装以下软件并配置相关环境变量:

Java Development Kit (JDK):由于JDBC是基于Java的API,因此需要在本地机器上安装JDK,并设置JAVA_HOME环境变量指向其安装目录。例如,在Windows环境下,可以通过以下命令设置:

set JAVA_HOME=D:\ProgramFiles\Java\jdk1.8.0_40
  1. 注意:请根据实际的JDK安装路径进行替换。
  2. 达梦数据库JDBC驱动:从达梦官方网站下载对应版本的JDBC驱动包(如DmJdbcDriver-1.8.0.jar),并将其保存到指定目录(如D:\DmJdbcDriver-1.8.0.jar)。这个JAR文件将在连接数据库时被jaydebeapi库引用。

二、安装jaydebeapi

使用Python的包管理器pip安装jaydebeapi库:

pip install jaydebeapi

三、编写Python代码

下面是一个使用jaydebeapi连接达梦数据库并执行SQL查询的示例代码:

import jaydebeapi
import os

# 设置Java环境变量(请根据实际情况调整)
os.environ['JAVA_HOME'] = r'D:\ProgramFiles\Java\jdk1.8.0_40'

def connect():
    # 定义数据库连接参数
    global url, user, password, result
    url = 'jdbc:dm://xx.xx.xx.xx:5236/cloud'
    user = 'SYSDBA'
    password = 'SYSDBA'
    driver_class = 'dm.jdbc.driver.DmDriver'
    jar_file = 'D:\DmJdbcDriver-1.8.0.jar'
    sql_str = 'select * from vm_template'

    # 建立JDBC连接
    conn = jaydebeapi.connect(driver_class, url, [user, password], jar_file)

    # 创建游标对象并执行SQL查询
    cursor = conn.cursor()
    cursor.execute(sql_str)

    # 获取查询结果并打印
    result = cursor.fetchall()
    for item in result:
        print(item)

    # 关闭游标和连接
    cursor.close()
    conn.close()

if __name__ == '__main__':
    connect()

解析代码:

  • 连接参数定义
  • url:JDBC连接字符串,格式为jdbc:dm://<hostname>:<port>/<database>。此处示例连接至IP地址为xx.xx.xx.xx、端口为5236的达梦数据库服务器上的cloud数据库。
  • userpassword:数据库用户名和密码,此处使用默认的SYSDBA账户。
  • driver_class:达梦数据库JDBC驱动类名。
  • jar_file:存放达梦数据库JDBC驱动包的路径。
  • sql_str:要执行的SQL查询语句。
  • 建立连接:调用jaydebeapi.connect()方法,传入上述参数创建到达梦数据库的JDBC连接。
  • 执行查询
  • 创建游标对象:通过conn.cursor()方法获取一个游标对象,用于执行SQL语句
  • 执行SQL:调用游标的execute()方法执行sql_str中的查询语句。
  • 获取查询结果:调用fetchall()方法获取所有查询结果,并将其赋值给result变量。
  • 处理结果:遍历result列表,打印每一项查询结果。
  • 关闭资源:分别调用cursor.close()conn.close()方法关闭游标和数据库连接,释放系统资源。

现在,运行此Python脚本即可通过JDBC连接达梦数据库并执行SQL查询。根据实际需求,可以修改sql_str变量来执行其他类型的SQL语句(如INSERT、UPDATE、DELETE等),并相应地处理查询结果或返回值。

总结起来,通过jaydebeapi库,Python开发者能够便捷地利用JDBC接口与达梦数据库进行交互,从而在跨平台、跨数据库的环境中实现数据操作与分析。

目录
相关文章
|
2天前
|
Java Devops API
阿里云云效操作报错合集之云效页面提示数据库保存不进去,该怎么办
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
2天前
|
Linux 数据库
Linux安装达梦数据库达梦数据
Linux安装达梦数据库达梦数据
4 0
|
3天前
|
程序员 API 计算机视觉
技术经验解读:【python自动化】02.pywin32库自动操作键鼠(保姆级代码注释)
技术经验解读:【python自动化】02.pywin32库自动操作键鼠(保姆级代码注释)
|
3天前
|
SQL 存储 监控
达梦数据库死锁排查与解决
达梦数据库死锁排查与解决
7 0
|
3天前
|
SQL Java 数据库连接
老程序员分享:JDBC工具类封装、封装DAO方法与数据库表实体类封装的使用案列详情
老程序员分享:JDBC工具类封装、封装DAO方法与数据库表实体类封装的使用案列详情
|
3天前
|
SQL 关系型数据库 MySQL
技术笔记:python连接mysql数据库
技术笔记:python连接mysql数据库
|
3天前
|
SQL 关系型数据库 MySQL
php mysqli操作数据库
php mysqli操作数据库
8 0
|
3天前
|
Java 关系型数据库 MySQL
连接MySQL数据库的最优JDBC代码
连接MySQL数据库的最优JDBC代码
|
1月前
|
关系型数据库 MySQL Java
MySQL的主从复制 && SpringBoot整合Sharding-JDBC解决读写分离
MySQL的主从复制 && SpringBoot整合Sharding-JDBC解决读写分离
50 0
|
1月前
|
Java 关系型数据库 数据库连接
实时计算 Flink版操作报错之在使用JDBC连接MySQL数据库时遇到报错,识别不到jdbc了,怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。