使用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接口与达梦数据库进行交互,从而在跨平台、跨数据库的环境中实现数据操作与分析。

相关文章
|
6月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
738 7
|
6月前
|
SQL Java 数据库连接
除了JDBC,还有哪些常见的数据库访问技术?
除了JDBC,还有哪些常见的数据库访问技术?
535 2
|
7月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
7月前
|
数据库
【赵渝强老师】达梦数据库实例的状态
达梦数据库实例包含NORMAL、PRIMARY和STANDBY三种模式,以及MOUNT、OPEN和SUSPEND三种状态。模式之间可在MOUNT状态下相互转换,不同状态与模式适用于数据库的启动、配置及运行需求。
380 1
|
7月前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
592 0
|
11月前
|
SQL 数据库 开发者
Python中使用Flask-SQLAlchemy对数据库的增删改查简明示例
这样我们就对Flask-SQLAlchemy进行了一次简明扼要的旅程,阐述了如何定义模型,如何创建表,以及如何进行基本的数据库操作。希望你在阅读后能对Flask-SQLAlchemy有更深入的理解,这将为你在Python世界中从事数据库相关工作提供极大的便利。
897 77
|
SQL 数据库 Docker
【赵渝强老师】在Docker中运行达梦数据库
本文介绍了在Docker容器中部署达梦数据库(DM 8)的具体步骤,包括创建文件夹、下载安装包、导入镜像、启动容器、登录数据库及查看状态等操作。同时,通过视频讲解辅助理解。文中还分析了将数据库服务容器化的潜在问题,如数据安全性、硬件资源争用、网络带宽占用和额外隔离带来的挑战,指出数据库服务在生产环境中可能不适合容器化的原因。
1500 4
【赵渝强老师】在Docker中运行达梦数据库
|
SQL 缓存 分布式数据库
【赵渝强老师】达梦数据库的线程结构
达梦数据库采用单进程、多线程结构,利用对称服务器架构实现高效资源利用与可扩展性。其核心线程类型包括监听线程(管理客户端连接)、I/O线程(处理数据页读写)、工作线程(执行数据操作)、调度线程(定时任务管理)和日志刷新线程(确保REDO日志刷盘)。通过合理分工与同步机制,达梦数据库实现了高性能与稳定性。视频讲解进一步详细介绍了各线程的功能与协作方式。
351 1
【赵渝强老师】达梦数据库的线程结构
|
存储 SQL NoSQL
【赵渝强老师】达梦数据库的逻辑存储结构
本文介绍了达梦数据库的存储结构,包括逻辑和物理存储两部分。逻辑存储结构由数据库(Database)、表空间(Tablespaces)、段(Segments)、簇(Cluster)和页(Page)组成。数据库是最大逻辑单元,包含所有表、索引等;表空间由数据文件组成,用于存储对象;段由簇构成,簇包含连续的数据页;页是最小存储单元。文中还提供了查询表空间、段和页大小的SQL语句,并附有视频讲解和示意图。
467 7
|
数据库 Python
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断

推荐镜像

更多