Python使用jdbc对openGauss数据库进行操作(一)
阅读原文时间:2021年05月04日阅读:1

Python使用jdbc对openGauss数据库进行操作(一)

说在前面

研究了一上午写了这么一个基础的操作帮助文档,之所以用python仅仅是因为喜欢用,才发现openGauss还没提供python直接使用的驱动,使用psycopg2就会出现加密认证错误的问题,修改起来极为麻烦果断放弃,网上又恰好没有可以直接照抄的文档,于是研究了半天总算搞出了眉目。基本思想就是在python里使用jar包,目前openGuass发布了基于jdbcopenGauss Connectors,刚好可以拿来用,再结合java帮助文档就能实现python连接使用openguas了。

基本配置

  • openGauss:1.1.0
  • Python:3.8
  • JDK:1.8

事前准备

openGauss Connectors下载

安装python库

  • 先安装jpype1

  • 再安装jaydebeapi

    pip install jpype1
    pip install jaydebeapi

  • 这样就准备完了,java安装就默认都有了

具体步骤

1.配置参数

  • driver:Driver.class所在位置(org.postgresql.Driver)

  • jarFile:jar包所在位置(D:\openGauss-1.1.0-JDBC\postgresql.jar)

  • url:jdbc:<数据库类型[postgresql]>://:/<数据库名>

  • user:数据库用户名

  • password:密码

2.导入第三方库jaydebeapi

import jaydebeapi

3.创建连接

conn = jaydebeapi.connect(driver,url,[user,password],jarFile)

4.对数据库进行操作

  1. 获取游标:curs = conn.cursor()
  2. 拼接SQL语句:sqlStr = ‘select {} from {} where {}‘.format(value, tableName, condition)
  3. 执行SQL语句:curs.execute(sqlStr)
  4. 获取查询返回结果:result = curs.fetchall()/result = curs.fetchone()
  5. 释放游标:curs.close()
  6. 如果不打算继续操作数据库后记得关闭连接:conn.close()

使用示例

import jaydebeapi
url = ‘jdbc:postgresql://122.9.1.237:26000/dm‘
user = ‘liming‘
password = ‘Peter991213‘
driver = ‘org.postgresql.Driver‘
jarFile = ‘D:\openGauss-1.1.0-JDBC\postgresql.jar‘
conn = jaydebeapi.connect(driver,url,[user,password],jarFile)
curs=conn.cursor()
sqlStr = ‘select * from usr‘
curs.execute(sqlStr)
result=curs.fetchall()
print(result)
curs.close()
conn.close()
  • 结果