java.sql.SQLException : Parameter number 2 is not an OUT parameter

标签 java sql

我在运行时遇到错误:

1. cs = getCon1().prepareCall("{CALL SaveLabourWageDetails(?,?)}");

2. cs.setString(1, user.getUserId());

3. cs.registerOutParameter(2, java.sql.Types.INTEGER); //<--- ERROR at this line

4. cs.execute();

5. String lastIsertId=cs.getString(2);

存储过程是:

CREATE

    PROCEDURE `cheque_alert`.`SaveLabourDetailsHead`(IN wage_entered_by VARCHAR(10),OUT LastInsertId INT)

    BEGIN
    INSERT INTO `cheque_alert`.`labour_wage_head`
            (
             `wage_entered_by`,
             `entered_date_time`)
    VALUES (wage_entered_by,
         NOW());

          SELECT LAST_INSERT_ID() INTO LastInsertId;

    END$$

DELIMITER ;

请指出这段代码的问题..

最佳答案

您调用了错误的程序。您有过程 SaveLabourDetailsHead 并且您正在调用

1. cs = getCon1().prepareCall("{CALL SaveLabourWageDetails(?,?)}");  
                                         ↑  

更改为,

1. cs = getCon1().prepareCall("{CALL SaveLabourDetailsHead(?)}");  

设置字符串参数wage_entered_by

关于java.sql.SQLException : Parameter number 2 is not an OUT parameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19581950/

相关文章:

java - 使用 Eclipse 和 JBoss 调试 JSP

java - 使图像按钮的行为类似于切换按钮

java - 收到错误 - java.lang.ClassCastException : org. openqa.selenium.chrome.ChromeDriver 无法转换为 com.initialization.DriverInitialization

sql - Mysql 查询性能 -

java - 没有这样的表问题

SQL:将记录设置为系统日期

java - Jetty.util.MultiMap 抛出 ConcurrentModificationException

java - 如何为字段编写自定义注释,以便为该字段创建自定义 setter ?

c# - 从数据库获取数据到 ComboBox

mysql - 索引 FK 和索引列之间的性能和模型差异