我在运行时遇到错误:
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/