在Java-Parameter中使用存储过程不是参数错误

在Java-Parameter中使用存储过程不是参数错误,java,mysql,Java,Mysql,当使用out参数调用存储过程时,出现此错误。它指向我注册out参数的位置。我看不出我缺少什么。提前谢谢 java.sql.SQLException:参数编号6不是OUT参数 以下是我的Java方法: String sp = "{CALL `hotelbuddy2.0`.`reservation.newres`(?,?,?,?,?,?)}"; CallableStatement cs = DB2.con2.prepareCall(sp); cs.s

当使用out参数调用存储过程时,出现此错误。它指向我注册out参数的位置。我看不出我缺少什么。提前谢谢

java.sql.SQLException:参数编号6不是OUT参数

以下是我的Java方法:

        String sp = "{CALL `hotelbuddy2.0`.`reservation.newres`(?,?,?,?,?,?)}";
        CallableStatement cs = DB2.con2.prepareCall(sp);

        cs.setInt(1, guest.getGuestId());
        cs.setTimestamp(2, checkIn);
        cs.setTimestamp(3, checkOut);
        cs.setString(4, comment);
        cs.setString(5, UserDetails.username);
        cs.registerOutParameter(6, Types.INTEGER);
        cs.execute();
        reservationId = cs.getInt(6);
        cs.close();
以下是我在Mysql中的存储过程:

CREATE DEFINER=`root`@`localhost` PROCEDURE `reservation.newres`(
IN p_guest_id INT,
IN p_check_in TIMESTAMP,
IN p_check_out timestamp,
IN p_comment VARCHAR(300),
IN p_created_by VARCHAR(45),
OUT p_reservation_id INT
)
BEGIN
INSERT INTO reservation
SET guest_id = p_guest_id,
    check_in = p_check_in,
    check_out = p_check_out,
    `comment` = p_comment,
    created_by = p_created_by;

SELECT LAST_INSERT_ID() INTO p_reservation_id;

END

你能试试
String sp=“{CALL hotelbuddy2.0.reservation.newres(?,,,,,,,,,?)}”吗即删除引号。也许是转义点。试试这个:
reservationId=cs.getInt(6)感谢您注意到PrerakSola的拼写错误。我会编辑那个部分。代码在注册out参数时停止。即使我将out参数的位置从1更改为6,我仍然会得到错误-参数编号x不是out参数。