我正在尝试在derby数据库中编写存储过程。 我写了一个按预期执行的Java文件。 这是我的java文件
package javaapplication8;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class JavaApplication8 {
public static void procedure(int uid, String Domain) {
Connection con;
try {
Class.forName("org.apache.derby.jdbc.ClientDriver");
con = DriverManager.getConnection("jdbc:derby://localhost:1527/Love_To_Learn", "Mohammed_Numan", "mohammed");
String sql = "Update Intrests set Points = Points + 10 where User_Id = " + uid + " and Intrest = '" + Domain + "'";
PreparedStatement pst = con.prepareStatement(sql);
int x = pst.executeUpdate();
if (x == 1) {
System.out.println("Finally");
}
} catch (Exception e) {
System.out.println(e);
}
}
}
我使用。
在数据库中安装了jar文件CALL sqlj.install_jar( 'C:\Users\flipkart\My Documents\NetBeansProjects\JavaApplication8\dist\JavaApplication8.jar', 'Mohammed_Numan.JavaApplication8',0);
和
CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.database.classpath','Mohammed_Numan.JavaApplication8');
使用
创建过程CREATE PROCEDURE Final(IN ID INTEGER,
IN Dom VARCHAR(40))
LANGUAGE JAVA
PARAMETER STYLE JAVA
EXTERNAL NAME 'javaapplication8.JavaApplication8.procedure';
这没有给我任何错误。 现在我打电话给程序使用
call Final(10006,'Java');
即使这样也会执行。但表格未更新。 有什么理由吗?
我甚至使用可调用语句来调用它。 代码是
CallableStatement cst = con.prepareCall("Call Final (?,?)");
cst.setInt(1,Integer.parseInt(u.getString(1)));
cst.setString(2,v.getString(1));
boolean done = cst.execute();
if(done){
System.out.println("Done")
}
else{
System.out.println("Sorry");
}
我总是抱歉......!我在哪里错了?请退房。