德比中的存储过程

时间:2017-12-06 13:14:55

标签: java stored-procedures derby

我正在尝试在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");
    }

我总是抱歉......!我在哪里错了?请退房。

0 个答案:

没有答案