tomcat做網(wǎng)站站長(zhǎng)之家查詢的網(wǎng)址
背景
目前,連接數(shù)據(jù)庫的Oracle租戶,只能通過Java和C的驅(qū)動(dòng)程序,無法通過其他語言的驅(qū)動(dòng)程序。為了滿足社區(qū)中用戶希望在Python代碼中連接Oracle租戶的需求,這里提供一種替代方案。通過結(jié)合使用JayDeBeApi和JDBC,我們可以間接地在Python代碼中實(shí)現(xiàn)對(duì)OceanBase Oracle模式租戶的連接。
前提條件
- 確保設(shè)置了基本的數(shù)據(jù)庫開發(fā)環(huán)境
- 計(jì)算機(jī)上的 Java 環(huán)境為 Java JDK 8 版本
- 計(jì)算機(jī)上的 Python 環(huán)境為 3.6.8 版本
- 已獲取 OceanBase Connector/J 驅(qū)動(dòng)程序安裝包
操作步驟
- 安裝 JayDeBeApi,推薦使用 pip 安裝方式,詳細(xì)信息參見?使用 pip 安裝 JayDeBeApi
- 將 OceanBase Connector/J 的 JAR 安裝包放入本地路徑中
- 在數(shù)據(jù)庫中創(chuàng)建測(cè)試對(duì)象。示例如下:
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 數(shù)據(jù)庫建立連接。即在如下 Python 代碼段中,填寫相應(yīng)的參數(shù)信息,如果獲得正確的運(yùn)行結(jié)果,則說明數(shù)據(jù)庫連接成功。
- 在?url?字段填入相應(yīng)的 IP 地址和端口號(hào)
- 在?driver?字段輸入類路徑
- 在?jarFile?字段填入相應(yīng)的 JAR 安裝包路徑
#!/usr/bin/env python3.6
-*- coding: UTF-8 -*-
encoding = "utf8"
import jaydebeapi
def ob_test(): //ob_test() 為自定義 Python 項(xiàng)目名稱。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 測(cè)試語句
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()