1
MySQL存儲過程MySQL的存儲過程總是返回輸出參數值= 0
DELIMITER $$
USE `RMS`$$
DROP PROCEDURE IF EXISTS `posHdrTrxEntry`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `posHdrTrxEntry`(
IN mbrID INT,
IN usrID INT,
IN unqID VARCHAR(50),
OUT trxID INT
)
BEGIN
DECLARE trxID INT;
INSERT INTO `RMS`.`transaction`
(`MemberID`,`UserID`,`UID`)
VALUES (mbrID,usrID,unqID);
IF ROW_COUNT() > 0 THEN
SET trxID=(SELECT ID FROM `transaction` WHERE `transaction`.`UID`=unqID);
END IF;
IF trxID > 0 THEN
UPDATE `transaction` SET `transaction`.`UID`=0 WHERE `transaction`.`ID`=trxID;
END IF;
END$$
DELIMITER ;
爪哇--Code片段
Connection connection = null;
int trxID;
try {
connection = new DbService().getConnection();
CallableStatement cs = connection.prepareCall("{ CALL posHdrTrxEntry(?,?,?,?) }");
cs.setString(1, null);
cs.setInt(2, item.getUserID());
cs.setString(3, item.getUid());
cs.registerOutParameter(4, java.sql.Types.INTEGER);
cs.execute();
trxID=cs.getInt(4);
cs.close();
存儲過程總是返回輸出參數值= 0 ,即使存儲過程最後更新語句執行成功
IF trxID > 0 THEN
UPDATE `transaction` SET `transaction`.`UID`=0 WHERE `transaction`.`ID`=trxID;
END IF;
它的意思是TrxID大於0,爲什麼我在java中只得到0的值?
編輯(圖片查看)
好吧,讓我檢查! –
是的!工作正常。 –