背景
当前OceanBase数据库只支持通过Java和C驱动连接 Oracle 模式租户,不支持其他语言的驱动程序,但是不少社区用户对python代码中连接Oracle模式有需求,这里提供一种绕过办法,通过JayDeBeApi配合JDBC间接访问Oracle 模式。
前提条件
- 确保设置了基本的数据库开发环境
- 确保计算机上的 Java 环境为 Java JDK 8 版本
- 确保计算机上的 Python 环境为 3.6.8 版本
- 已获取 OceanBase Connector/J 驱动程序安装包
操作步骤
- 安装 JayDeBeApi,推荐使用 pip 安装方式,详细信息参见 使用 pip 安装 JayDeBeApi
- 将 OceanBase Connector/J 的 JAR 安装包放入本地路径中
- 在数据库中创建测试对象。示例如下:
CREATE TABLE test_python(id NUMBER, name VARCHAR2(20));
INSERT INTO test_python VALUES (1, 'test1');
INSERT INTO test_python VALUES (2, 'test2');
COMMIT;
4. 与 OceanBase 数据库建立连接。即在如下 Python 代码段中,填写相应的参数信息,如果获得正确的运行结果,则说明数据库连接成功。
- 在 url 字段填入相应的 IP 地址和端口号
- 在 driver 字段输入类路径
- 在 jarFile 字段填入相应的 JAR 安装包路径
#!/usr/bin/env python3.6
-*- coding: UTF-8 -*-
encoding = "utf8"
import jaydebeapi
def ob_test(): //ob_test() 为自定义 Python 项目名称。
url = 'jdbc:oceanbase://host:port/database'
user = 'testUser'
password = '******'
driver = 'com.alipay.oceanbase.jdbc.Driver'
jarFile = './oceanbase-client-2.4.3.jar'
sqlStr = 'select * from test_python' // SQL 测试语句
conn=jaydebeapi.connect('oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:@127.XXX.XXX.XXX:1521/orcl',['hwf_model','hwf_model'],'E:/pycharm/lib/ojdbc14.jar')
conn = jaydebeapi.connect(driver, url, [user, password], jarFile)
curs = conn.cursor()
curs.execute(sqlStr)
result = curs.fetchall()
print(result)
curs.close()
conn.close()
ob_test()