在Java-Parameter中使用存储过程不是参数错误
当使用out参数调用存储过程时,出现此错误。它指向我注册out参数的位置。我看不出我缺少什么。提前谢谢 java.sql.SQLException:参数编号6不是OUT参数 以下是我的Java方法:在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
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参数。