Java 调用存储的MySQL函数

Java 调用存储的MySQL函数,java,mysql,stored-functions,Java,Mysql,Stored Functions,我在数据库中创建了一个存储函数verifierQteDemandee,它有一个整数参数numBonIn,返回一个布尔值 我想在我的java程序中执行这个函数,我在谷歌上搜索了一下,我能找到的就是执行一个存储过程,但是我假设执行一个存储函数和执行一个存储过程是一样的,这是我尝试过的代码: CallableStatement cStmt = con.prepareCall("{call verifierQteDemandee(?)}"); cStmt.setInt("numB

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

我想在我的java程序中执行这个函数,我在谷歌上搜索了一下,我能找到的就是执行一个存储过程,但是我假设执行一个存储函数和执行一个存储过程是一样的,这是我尝试过的代码:

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
变量是
连接的一个实例

正如您在我的代码中所注意到的,我不知道如何从此行存储的函数中获取返回值:
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);
Ça devrais fonctionner…!

您可以尝试:

CallableStatement cstmt = con.prepareCall("{call verifierQteDemandee(?)}");
cstmt.registerOutParameter(1,Type.Boolean);
cstmt.setInt("numBonIn", 42);
cstmt.execute();
bool outputValue = cstmt.getBoolean(1);
作为旁注,我不希望从sql函数中获得结果集!我希望从sql函数中输出标量值


有关函数和存储过程之间的完整比较,请参阅