更新时间:2024-09-13 GMT+08:00

使用JayDebeApi连接数据库

JayDebeApi是一个Python模块,其提供了一种方便、高效的方式,让Python开发者能够利用Java的JDBC驱动程序来连接和操作各种数据库。

本章节指导用户如何使用JayDebeApi连接GaussDB数据库。

环境配置

  1. 配置GaussDB开发环境。

    准备好基本的 GaussDB 开发环境,获取数据库连接参数,例如:

    gsql -h ***.***.***.*** -p 20000 -U *** -W ****** -d test

    参数说明:

    -h:GaussDB服务器IP。

    -p:GaussDB连接端口。

    -U:连接用户名。

    -W:用户密码。

    -d:连接的DATABASE名。

  2. 安装JayDeBeApi驱动。
    1. 在计算机上安装Java JDK 8版本以及Python3版本,可以通过如下命令确认版本:
      java -version
      python --version
      pip --version
    2. 如果服务器能连接到Python源(Python的软件包索引PyPI),可以通过pip命令安装JayDeBeApi:
      pip install jaydebeapi

      如果不能,可以通过下载离线安装包然后进行本地安装的方式安装JayDeBeApi。

  3. 获取GaussDB驱动程序安装包。

    根据不同版本的实例,下载不同版本的发布包,如表1所示。

    表1 驱动包下载列表

    版本

    下载地址

    3.x

    驱动包

    驱动包校验包

    2.x

    驱动包

    驱动包校验包

    为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下:

    1. 上传软件包和软件包校验包到虚拟机(Linux操作系统)的同一目录下。
    2. 执行如下命令,校验软件包完整性。

      cat GaussDB_driver.zip.sha256 | sha256sum --check

      如果回显OK,则校验通过。

      GaussDB_driver.zip: OK

使用示例

  1. 新建脚本文件。
    • 新建一个test_jaydebeapi.py文件,写入代码如下:
      #!/usr/bin/env python3.x
      # -*- coding: UTF-8 -*-
      encoding = "utf8"
      import jaydebeapi
      
      def test_jaydebeapi():
          #需要配置的参数
          url = 'jdbc:opengauss://***.***.***.***:20000/test'
          user = '***'
          password = '******'
          driver = 'com.huawei.opengauss.jdbc.Driver'
          jarFile = './opengaussjdbc.jar'
      
          conn = jaydebeapi.connect(driver, url, [user, password], jarFile)
          cur = conn.cursor()
      
          #创建表students
          sql = 'create table students (id int, name varchar(20))'
          cur.execute(sql)
      
          #往students表中插入三组数据
          sql = "insert into students values(1,'xiaoming'),(2,'xiaohong'),(3,'xiaolan')"
          cur.execute(sql)
      
          #查询students表中的所有数据
          sql = 'select * from students'
          cur.execute(sql)
          ans = cur.fetchall()
          print(ans)
      
          #更新students表中的数据
          sql = 'update students set name = \'xiaolv\' where id = 1'
          cur.execute(sql)
      
          #再次查询students表中的所有数据
          sql = 'select * from students'
          cur.execute(sql)
          ans = cur.fetchall()
          print(ans)
      
          #删除表students
          sql = 'drop table students'
          cur.execute(sql)
      
          cur.close()
          conn.close()
      
      test_jaydebeapi()
    • 配置代码中的参数:
      #连接url,设置数据库服务器IP、端口、数据库名
      url = 'jdbc:opengauss://***.***.***.***:20000/test'
      #设置用户名
      user = '***'
      #设置密码
      password = '******'
      #JDBC驱动类路径
      driver = 'com.huawei.opengauss.jdbc.Driver'
      #JDBC驱动jar包路径(默认放在与test_jaydebeapi.py文件同目录下)
      jarFile = './opengaussjdbc.jar'
  2. 执行程序。

    使用以下命令执行test_jaydebeapi.py文件:

    python ./test_jaydebeapi.py
  3. 预期结果。

    成功连接GaussDB数据库,并返回两次查询结果,如下所示:

    图1 返回两次查询结果