Python使用jdbc对openGauss数据库进行操作(一)
Python使用jdbc对openGauss数据库进行操作(一)
说在前面
研究了一上午写了这么一个基础的操作帮助文档,之所以用python仅仅是因为喜欢用,才发现openGauss还没提供python直接使用的驱动,使用psycopg2就会出现加密认证错误的问题,修改起来极为麻烦果断放弃,网上又恰好没有可以直接照抄的文档,于是研究了半天总算搞出了眉目。基本思想就是在python里使用jar包,目前openGuass发布了基于jdbc的openGauss Connectors,刚好可以拿来用,再结合java帮助文档就能实现python连接使用openguas了。
基本配置
- openGauss:1.1.0
- Python:3.8
- JDK:1.8
事前准备
openGauss Connectors下载
- 下载地址:https://opengauss.obs.cn-south-1.myhuaweicloud.com/1.1.0/arm/openGauss-1.1.0-JDBC.tar.gz
- 需要注意下载版本要和安装的相符,我实在华为ecs上安装的opengauss1.1.0,所以要下载openeuler_arrchx64 jdbc_1.1.0版本
安装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.对数据库进行操作
- 获取游标:curs = conn.cursor()
- 拼接SQL语句:sqlStr = 'select {} from {} where {}'.format(value, tableName, condition)
- 执行SQL语句:curs.execute(sqlStr)
- 获取查询返回结果:result = curs.fetchall()/result = curs.fetchone()
- 释放游标:curs.close()
- 如果不打算继续操作数据库后记得关闭连接: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()
- 结果