4.3. Python使用jaydebeapi方式连接到数据库(Linux)
本章节将介绍Python程序通过jaydebeapi连接到GBase 8s数据库的方式。
jaydebeapi依赖jdbc驱动,因此需要jre运行环境。
4.3.1. 示例环境介绍
操作系统:Ubuntu 22.04.3 LTS (x86_64)
数据库版本:GBase 8s v8.8_3.6.3_3x2_1
JDBC驱动版本:
Python3版本:Python 3.10.12 (系统自带)
JayDeBeApi版本:1.2.3 (https://pypi.org/project/JayDeBeApi)
JDK版本:1.8.0_462 (系统自带)
4.3.2. 确认安装python3及版本
确认已经安装python3和pip3
root@netsky:~# python3 --version
Python 3.10.12
root@netsky:~# pip3 --version
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)
如果没有安装,建议使用apt -y install python3来安装。
4.3.3. 确认安装JDK及版本
确认已经安装JDK
root@netsky:~# java -version
openjdk version "1.8.0_462"
OpenJDK Runtime Environment (build 1.8.0_462-8u462-ga~us1-0ubuntu2~22.04.2-b08)
OpenJDK 64-Bit Server VM (build 25.462-b08, mixed mode)
如果没有安装,建议使用apt -y install openjdk-8-jdk来安装。
4.3.4. 安装JayDeBeApi及依赖模块
The JayDeBeApi module allows you to connect from Python code to databases using Java JDBC. It provides a Python DB-API v2.0 to that database.
root@netsky:~# pip3 install JayDeBeApi
root@netsky:~# pip3 install jpype1==1.5.2
确认已经安装
root@netsky:~# pip3 list | egrep '(JayDeBeApi|jpype1)'
JayDeBeApi 1.2.3
jpype1 1.5.2
4.3.5. 复制jdbc驱动
复制JDBC驱动包 gbasedbtjdbc_3.6.3_3X2_1_377ee9.jar 到目录
4.3.6. 编写测试代码并执行测试
测试代码Python3JayDebeApiSample.py
import sys
import jaydebeapi
print("\nPython JayDeBeApi JDBC 测试程序开始运行.\n")
conn = jaydebeapi.connect("com.gbasedbt.jdbc.Driver",
"jdbc:gbasedbt-sqli://192.168.0.212:13633/testdb:GBASEDBTSERVER=gbase01;DB_LOCALE=zh_CN.utf8;CLIENT_LOCALE=zh_CN.utf8;IFX_LOCK_MODE_WAIT=60",
["gbasedbt", "GBase123$%"],
"/root/gbasedbtjdbc_3.6.3_3X2_1_377ee9.jar")
mycursor = conn.cursor()
mycursor.execute("drop table if exists company")
print("drop table company succeed!")
mycursor.execute("create table company(coid serial,coname varchar(255),coaddr varchar(255))")
print("create table company succeed!")
mycursor.execute("insert into company values(0,?,?),(0,?,?)",("GBase","TJ","GBase BeiJing","BJ"))
print("insert table company succeed!")
mycursor.execute("select * from company")
print(mycursor.fetchall())
print("select table company succeed!")
mycursor.close()
conn.close()
print("\nPython JayDeBeApi JDBC 测试程序结束运行.\n")
sys.exit(0)
执行测试
root@netsky:~# python3 Python3JayDebeApiSample.py
Python JayDeBeApi JDBC 测试程序开始运行.
drop table company succeed!
create table company succeed!
insert table company succeed!
[(1, 'GBase', 'TJ'), (2, 'GBase BeiJing', 'BJ')]
select table company succeed!
Python JayDeBeApi JDBC 测试程序结束运行.
最后更新日期:2025-08-20