使用JPype连接Oracle数据库时出错

时间:2020-04-29 17:50:10

标签: java python oracle jpype

我正在尝试使用JPype将我的Python代码与Java类进行通信。在我的Java类中,我编写了使用JDBC API连接到数据库的代码。

从Python调用的Java方法的内容如下:

Class.forName("oracle.jdbc.driver.OracleDriver");

//Reference to connection interface 
con = DriverManager.getConnection(url,user,pass); 

PreparedStatement stmt = con.prepareStatement(stringQuery); 
stmt.setString(1, batchReferenceNo);
ResultSet rs = stmt.executeQuery();

//STEP 5: Extract data from result set
while(rs.next()){
bene_name = rs.getString(1);
}
con.close();

但是在执行我的Python代码时,我在日志中遇到以下异常:

“捕获的Java异常:”,“ java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver')java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver位于 java.net.URLClassLoader.findClass(URLClassLoader.java:381)在 java.lang.ClassLoader.loadClass(ClassLoader.java:424)在 sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:331)在 java.lang.ClassLoader.loadClass(ClassLoader.java:357)在 java.lang.Class.forName0(本机方法)

我的Python代码是:

def Validate_Payment_Instruction_JPype(self, batchRefNo):

cpath="-Djava.class.path=%s" % ("D:\workspace\AUTOMATION\AxiaLibrary\\")
startJVM(getDefaultJVMPath(), "-ea", cpath)
PaymentInstructionValidation = JClass('Payments.PaymentInstructionValidation')()
print(JObject(PaymentInstructionValidation.fetchPaymentInstruction(JString(batchRefNo))))
shutdownJVM()

我尝试将ojdbc6.jar放在我的类路径中,即“ D:\ workspace \ AUTOMATION \ AxiaLibrary \”。但是问题仍然存在。

请帮助解决该问题。

0 个答案:

没有答案