一个关于java调用mysql 存储过程的问题

我有一个java程序:packagedemo1;importjava.sql.CallableStatement;importjava.sql.Connection;im... 我有一个java程序:
package demo1;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Types;

public class demo17 {

public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String url = "jdbc:mysql://localhost:3306/test03";
String user = "root";
String password = "";
Connection conn = DriverManager.getConnection(url, user, password);
String sql = "{call test02(?)}";
CallableStatement cst = conn.prepareCall(sql);
cst.registerOutParameter(1, Types.INTEGER);
cst.execute();
int count = cst.getInt(1);
System.out.println(count);
conn.close();
}

}
mysql存储过程是以下这样:
DELIMITER //
CREATE PROCEDURE test02(OUT b INT)
BEGIN
SELECT COUNT(*) FROM test002_book;
END
//
我的test02有5个记录,我在mysql调用以上的存储过程时结果是5,是对的,但在java调用mysql的存储过程时结果是0,我在编写java出现什么问题?请各位高手指教?
展开
 我来答
KingTeacherZJF
2019-03-27
知道答主
回答量:8
采纳率:0%
帮助的人:1.8万
展开全部
在存储过程中如果有查询结果集,在java中执行存储过程后,应使用其父接口Statement的getResultSet()方法获取查询结果集,此方法就返回ResultSet,如你上面若想获取存储过程中查询结果集应如下:
ResultSet rs = cst.getResultSet();
以下遍历此rs即可... ...
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式