我试图使用Python从linux Unbuntu vm访问IBM DVM(数据虚拟化管理器)。
我已经在unbuntu机器上安装了JAVA:java - version
openjdk版本"1.8.0_362";OpenJDK运行环境(build 1.8.0_362-b08)OpenJDK 64位Server VM (build 25.362-b08, mixed mode)
我也安装了JayDeBeAPI:安装JayDeBeApi
安装收集包:package, JPype1, JayDeBeApiJPype1-1.4.1 JayDeBeApi-1.2.3 package -23.0
我已经从IBM网站下载了DVM-JDBC3.1驱动程序
https://ak-delivery04-mul.dhe.ibm.com/sar/CMA/IMA/0bb4c/0/dvm-jdbc-3.1.202303130554.zip解压到/opt/dvm-jdbc-3.1.202303130554.
我还设置了类路径:echo $类路径
/opt/dv-jdbc-3.1.202303130554:/opt/dv-jdbc-3.1.202303130554/dv-jdbc-3.1.202303130554.jar:
现在我试图运行以下python代码连接到DVM
进口jpype
进口jaydebeapi
dvm_driver_path =/opt/dv-jdbc-3.1.202303130554/dv-jdbc-3.1.202303130554.jar">
jpype.addClassPath ('/opt/dv-jdbc-3.1.202303130554/dv-jdbc-3.1.202303130554.jar ')jpype.startJVM (jpype.getDefaultJVMPath(),"-Djava.class.path = % s"% ('/opt/dv-jdbc-3.1.202303130554/dv-jdbc-3.1.202303130554.jar '))
conn = jaydebeapi.connect('com.rs.jdbc.dv.DvDriver.class',"jdbc: dv ://###:##/###',{'用户':'#####','密码':'####'},'/opt/dv-jdbc-3.1.202303130554/dv-jdbc-3.1.202303130554.jar ')
如果(康涅狄格州):打印("连接")其他:print('连接失败')
,但我得到以下错误:python3 dvm-jdbc.py回溯(最近一次调用):文件"/opt/dv-jdbc-3.1.202303130554/dm -jdbc.py"conn = jaydebeapi.connect('com.rs.jdbc.dv.DvDriver.class',文件"/home/sanika/。local/lib/python3.10/网站/jaydebeapi/init.py",第412行,连接Jconn = _jdbc_connect(jclassname, url, driver_args, jars, libs)文件"/home/sanika/。local/lib/python3.10/网站/jaydebeapi/init.py",第221行,在_jdbc_connect_jypejpype.JClass (jclassname)文件"/home/sanika/.local/lib/python3.10/site-packages/jtype/_jclass.py",第99行,在new返回_jpype._getClass (jc)类型错误:com.rs.jdbc.dv.DvDriver.class找不到
是我的驱动程序类错误吗?如果是的话,哪一个是正确的?
正确的类名应该是'com.rs.jdbc.dv。,所以你的连接线应该是
conn = jaydebeapi.connect('com.rs.jdbc.dv.DvDriver', 'jdbc:dv://###:##/###', {'user': '#####', 'password': '####'}, '/opt/dv-jdbc-3.1.202303130554/dv-jdbc-3.1.202303130554.jar')
还要确保JDBC驱动程序的路径是正确的,因为您在代码中提到了/opt/dvm-jdbc-3.1.202303130554
和/opt/dv-jdbc-3.1.202303130554
。