gpt4 book ai didi

mysql - 从 jdbc 调用存储过程时出现异常

转载 作者:行者123 更新时间:2023-11-30 01:32:08 25 4
gpt4 key购买 nike

调用存储过程会导致此异常:

SQLException1 java.sql.SQLException: User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted, configure connection with "noAccessToProcedureBodies=true" to have driver generate parameters that represent INOUT strings irregardless of actual parameter types.

为了解决这个问题,我尝试了:

Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306
/database?useInformationSchema=true&noAccessToProcedureBodies=true",
"user_name", "pasword");

但是还是不行。

我正在使用共享主机。

我正在使用

  • 软件版本:5.0.91-community-log - MySQL 社区版 (GPL)
  • 协议(protocol)版本:10
  • Java 1.6
  • mysql-connector-java-5.1.14-bin.jar

我的存储过程之一是:

DROP PROCEDURE IF EXISTS `share_message` 

DELIMITER //


CREATE PROCEDURE share_message(in messageid1 int(200),in received_by1 int(20),
in sent_by1 int(20),in shared_of1 int(20),author1 int(20), OUT query_status1 TINYINT)

BEGIN


DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
-- ERROR
SET query_status1 = -1;
rollback;
END;

DECLARE EXIT HANDLER FOR SQLWARNING
BEGIN
-- WARNING
SET query_status1 = -1;
rollback;
END;

START TRANSACTION;
SET query_status1 = 0;



INSERT INTO post_message_users(messageid,received_by,sent_by,shared_of,author)
VALUES(messageid1,received_by1,sent_by1,shared_of1,author1);

UPDATE post_messages SET total_share=total_share+1 WHERE messageid=messageid1;


SET query_status1 =1;


COMMIT;
END//

DELIMITER ;

这与我的本地数据库正常工作。

最佳答案

您尝试使用的存储过程似乎需要访问 MySQL 的 INFORMATION_SCHEMA。这是每个 MySQL 服务器中内置的(假)数据库;它用于获取表、列、索引等的描述。

您使用的用户 ID 似乎无权访问 INFORMATION_SCHEMA。这对于托管服务来说是可以理解的。

进入 MyPhpAdmin 并尝试这样的查询来确定这一点。

 SELECT table_schema, table_name
FROM information_schema.columns
WHERE column_name = 'something'
AND table_schema = 'your database name'

如果您收到某种错误提示您没有权限,这绝对是您的问题。

您可以尝试重写您的存储过程,或者您可以要求您的托管服务授予您适当的权限。

关于mysql - 从 jdbc 调用存储过程时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17322142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com