我正在尝试使用JDBC,并且我已经创建了一个存储过程。我想调用存储过程,然后使用Java中的System.out.println
输出数据输出。我怎么做?
以下是我原来的存储过程。我想让这个工作,但从阅读中我不知道是否可能
DELIMITER $$
CREATE
PROCEDURE CountMembers()
BEGIN
SELECT COUNT(MEMBER_ID) FROM Members;
END $$
DELIMITER ;
这是我改变它的原因,因为它似乎得到了输出,这可能是必须要做的。
DELIMITER $$
CREATE
PROCEDURE CountMembers(OUT m_count VARCHAR(30))
BEGIN
SELECT COUNT(MEMBER_ID) INTO m_count FROM Members;
END $$
DELIMITER ;
我知道要运行它我必须制作一个可调用的语句然后我已经看到String userCount = callableStatement.getString(1);
可以获得输出的地方。基本上我已经阅读了很多信息,但是我很难把它们放在一起。
答案 0 :(得分:4)
首先,请注意COUNT(MEMBER_ID)将返回一个整数值,但您正在将其选择为VARCHAR变量。
接下来,我认为你正在寻找类似的东西:
CallableStatement stm = connection.prepareCall("{ call CountMembers(?) }");
stm.registerOutParameter(1, Types.VARCHAR);
stm.execute();
String m_count = stm.getString(1);
stm.close();