java中从mysql存储过程中提取参数

java中从mysql存储过程中提取参数,java,mysql,stored-procedures,Java,Mysql,Stored Procedures,我在java中从mysql存储过程中检索出参数时遇到问题 CALL proc_after_topic_add('newtest',@result); SELECT @result; 这个查询给了我所需的out参数,但我如何在java中检索它 java.sql.SQLException: Callable statments not supported. 错了,请大家帮帮我。 我试过跟随 String sql = "CALL proc_after_topic_add(?,?);";

我在java中从mysql存储过程中检索出参数时遇到问题

CALL proc_after_topic_add('newtest',@result);
SELECT @result;
这个查询给了我所需的out参数,但我如何在java中检索它

java.sql.SQLException: Callable statments not supported.
错了,请大家帮帮我。 我试过跟随

String sql = "CALL proc_after_topic_add(?,?);";
            CallableStatement cstmt = conn.prepareCall(sql);
            cstmt.setString(1, topicname);
            cstmt.registerOutParameter(2, java.sql.Types.INTEGER);
            ResultSet rs = cstmt.executeQuery();
            if (rs.next()) {
                if (rs.getInt(1) == 1) {
                    res = 0;
                } else {
                    res = -1;
                }
            }
我没有发布存储过程代码,因为它没有问题

PS:I a using mysql 5.5.21 and yes i should probably mention i am using mysql connector 3.0.15
好的,问题解决了。对于遇到相同问题的任何人,只需下载最新版本的mysql connector。此行出现错误

 cstmt.registerOutParameter(2, java.sql.Types.INTEGER);
像这样改变

 String sql = "CALL proc_after_topic_add(?,?);";
 cstmt.registerOutParameter(2, java.sql.Types.INTEGER);
这行有错误

 cstmt.registerOutParameter(2, java.sql.Types.INTEGER);
像这样改变

 String sql = "CALL proc_after_topic_add(?,?);";
 cstmt.registerOutParameter(2, java.sql.Types.INTEGER);
使用此示例。 用户名和密码对我来说是root和root。根据您的要求进行更改
要求在这里,我计算employeename=“deepak”的出现次数

使用此示例。 用户名和密码对我来说是root和root。根据您的要求进行更改
要求在这里,我计算employeename=“deepak”的出现次数


但是我仍然收到callable语句not supported错误。是mysql连接器还是mysql版本有问题。我正在使用mysql 5.5.21Canu调试此代码,并检查是否有错误抛出表单Sql过程,我认为不会有任何版本相关的问题。但请检查veriosn,即使您可以访问Callable语句,也会从sql过程中发出问题。你可以发布Sql过程吗?我仍然收到callable语句不受支持的错误。是mysql连接器还是mysql版本有问题。我正在使用mysql 5.5.21Canu调试此代码,并检查是否从Sql过程中抛出错误,我认为不会有任何版本相关的问题。但请检查veriosn,即使您可以访问Callable语句,也会从sql过程中发出问题。你能发布Sql过程吗