在使用jaydebeapi只连接一种数据库时,是没问题的,但是如果需要同时连接两种数据库,不然同时连接oracle和mysql
例如以下测试代码:
import jaydebeapi ##使用jdbc驱动连接数据库
import pandas as pd
dirver='oracle.jdbc.driver.OracleDriver'
jarFile='D:\\WORK\\PYScript\\BiDataMonitor\\jdbc\\64\\ojdbc14.jar'
addr_='xxx.xxx.xxx.xxx'+':'+'1521'+'/'+'xxx'
url='jdbc:oracle:thin:@'+addr_
print('url',url)
DBUser='用户名'
DBPwd='密码'
conn=jaydebeapi.connect(dirver,[url,DBUser,DBPwd],jarFile) ##使用jdbc驱动连接数据库
sql_str="select 'oracle' from dual"
df=pd.read_sql_query(sql_str,conn)
print(df)
conn.close()
dirver='com.mysql.jdbc.Driver'
jarFile='D:\\WORK\\PYScript\\BiDataMonitor\\jdbc\\64\\mysql-connector-java-5.1.30.jar'
addr_='xxx.xxx.xxx.xxx'+':'+'3306'+'/'+'xxx'
url='jdbc:mysql://'+addr_
print('url',url)
DBUserMySql='用户名'
DBPwdMySql='密码'
conn2=jaydebeapi.connect(dirver,[url,DBUserMySql,DBPwdMySql],jarFile)
sql_str="select 'mysql' from dual"
df=pd.read_sql_query(sql_str,conn2)
print(df)
conn2.close()
在连接第二种数据库时,就会报错误:
Py4JJavaError: An error occurred while calling z:java.sql.