【发布时间】:2020-08-03 22:32:41
【问题描述】:
在我的课堂上,我在下面创建了简单的方法。这个类也有一个主要的功能。我正在从我的 DB2 存储过程中调用 getRes()。
public static void getRes() {
System.out.println("Start");
try{
Class.forName("com.ibm.db2.jcc.DB2Driver");
con = DriverManager.getConnection(
"jdbc:db2://url:50003/DB","user","Password");
Statement stmt=con.createStatement();
stmt.executeUpdate("INSERT INTO schema.TEST(ID) VALUES(1)");
} catch(Exception e){
System.out.println(e);
} finally {
if(con!=null) {
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
System.out.println("End");
}
我从 DB2 存储过程中调用这个函数。
CREATE OR REPLACE PROCEDURE schema.sp_TEST1()
FENCED
MODIFIES SQL DATA
EXTERNAL NAME 'connection.Connect.getRes()'
LANGUAGE JAVA
PARAMETER STYLE JAVA;
call schema.sp_TEST1()
此存储过程正在成功执行。但我怀疑我的方法是否执行。因为执行后测试表中没有任何条目。
以下是我部署此 jar 文件所遵循的步骤。 1. 从 Eclipse 中导出 jar。验证 jar 是否工作正常。 2. 执行调用 sqlj.install_jar()。验证 SYSIBM.SYSJARCONTENTS 中的安装。 3. 设置数据库服务器的类路径 导出 CLASSPATH=/home/db2inse5/sqllib/function/jar/SchemaName/JarName.jar 4.创建sp并调用sp。
预期输出是表测试中的一个条目。 但是虽然 sp 执行成功,但我没有得到预期的结果。
更新-20200423 我尝试提交数据库连接部分并将其替换为在数据库服务器中创建文件。这很有效,所以我可以确认从 SP 中正确调用了 jar 并且 jar 文件正常工作。但是上面的部分还没有解决
public static void getRes() {
System.out.println("Start");
File myObj = new File("/opt/filename.txt");
myObj.createNewFile();
}
【问题讨论】:
标签: java db2 java-stored-procedures