添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在Python代码中连接OceanBase Oracle租户

OceanBase社区 time 2024-02-26 tag 设计原理 tag2 安装部署、 资源隔离


背景

当前OceanBase数据库只支持通过Java和C驱动连接 Oracle 模式租户,不支持其他语言的驱动程序,但是不少社区用户对python代码中连接Oracle模式有需求,这里提供一种绕过办法,通过JayDeBeApi配合JDBC间接访问Oracle 模式。

前提条件

  • 确保设置了基本的数据库开发环境
  • 确保计算机上的 Java 环境为 Java JDK 8 版本
  • 确保计算机上的 Python 环境为 3.6.8 版本
  • 已获取 OceanBase Connector/J 驱动程序安装包

操作步骤

  1. 安装 JayDeBeApi,推荐使用 pip 安装方式,详细信息参见 使用 pip 安装 JayDeBeApi
  2. 将 OceanBase Connector/J 的 JAR 安装包放入本地路径中
  3. 在数据库中创建测试对象。示例如下:
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.oceanbase.jdbc.Driver'
        jarFile = './oceanbase-client-2.4.3.jar'
        sqlStr = 'select * from test_python'     # SQL 测试语句
        conn = jaydebeapi.connect(driver, url, [user, password], jarFile)
        curs = conn.cursor()
        curs.execute(sqlStr)
        result = curs.fetchall()
        print(result)
        curs.close()
        conn.close()