我已经在数据库中创建了一个存储函数verifierQteDemandee,它具有一个整数参数numBonIn,该参数返回一个布尔值。

我想在我的java程序中执行此功能,我在G​​oogle上进行了搜索,发现可以执行存储过程,但是我假设执行存储功能与执行存储过程相同,这就是我的代码。尝试过的

CallableStatement cStmt = con.prepareCall("{call verifierQteDemandee(?)}");
            cStmt.setInt("numBonIn", 42);
            boolean hadResults = cStmt.execute();
            if (hadResults) {
                ResultSet rs = cStmt.getResultSet();
            }
            Boolean outputValue = cStmt.getBoolean(outputValue);;
con变量是Connection的实例。

正如您在我的代码中注意到的那样,我不知道如何从这一行的存储函数中返回值:int outputValue = cStmt.getInt("");

请如果有人知道如何获得返回值的程序,我将不胜感激。

最佳答案

试试这个 :

CallableStatement cStmt = con.prepareCall("{? = call verifierQteDemandee(?)}");
cStmt.registerOutParameter(1,java.sql.Types.BOOLEAN);
cStmt.setInt(2, 42);
cStmt.execute();
Boolean outputValue = cStmt.getBoolean(1);

Çadevrais fonctionner ...!

09-06 05:31