我有一个存储过程,它使用“插入忽略”插入记录。
如果记录已经存在但代码不会中断,这将发出警告。
但是,在我的Java代码中使用statement.getWarnings()可以为可调用语句提供null,而对于已准备好的语句则可以正常工作。
其次,我使用显示警告创建了另一个存储过程。
如果从msql IDE执行,它会在控制台中完美显示警告,但是如果从Java调用则无法正常工作。
如何捕获通过Java程序导致存储过程的警告?
示例存储过程:
Blockquote
创建过程createOrderByRequestId
(
在requestId BIGINT中,
在createTime TIMESTAMP中,
在ModifyTime TIMESTAMP中,
在partnerAdapterId INT中,
IN providerOrderId VARCHAR(100),
在partnerPartId VARCHAR(100)中,
在orderStatus VARCHAR(100)中,
在billAmount FLOAT中,
在orderNotificationTime BIGINT中,
IN posCreationTime BIGINT,OUT ProviderResult VARCHAR(100),OUT ProviderResult2 VARCHAR(100))
开始
将更多信息插入到orders_demo中(orderRequestId,createTime,modifiedTime,partnerAdapterId,providerOrderId,partnerOrderId,orderStatus,billAmount,orderNotificationTime,posCreationTime) VALUES(requestId,createTime,modifiedTime,partnerAdapterId,providerOrderId,partnerOrderId,orderStatus,billAmount,orderNotificationTime,posCreationTime);
显示警告;
选择@ProviderResult AS RETURNED_SQLSTATE,@ ProviderResult2 AS MESSAGE_TEXT;
END $$
Blockquote