繁体   English   中英

MySQL 工作台返回多行存储过程,但从 Java 代码,只返回一行

[英]MySQL workbench returns stored procedure with multiple rows, but from Java code, only one row is returned

它是 MYSQL,在 Workbench 中同样的存储过程调用工作正常,但是从 Java 代码来看,它总是只返回一行。

String sql = "{ CALL getList(?, ?, ?) }";

CallableStatement cs = conn.prepareCall(sql);
cs.setLong(1, key);
cs.setString(2, id);
cs.setInt(3, java.sql.Types.INTEGER);
ResultSet rs = cs.executeQuery();
rtn = cs.getInt(3);             // this return as 1

while (rs.next()) {
     String name = rs.getString("name");
     String age= rs.getString("age");
     //.....
}

从这个while循环中,总是只返回一行,很奇怪,花了几个小时,还没有线索,请指教可能出了什么问题,提示MYSQL是旧版本5.3,Java是旧版本JDK 1.6。

哪位有经验的,请指教,谢谢。

除了你所拥有的,你还需要实现 add() 方法。 尝试这个:

String sql = "{ CALL getList(?, ?, ?) }";

CallableStatement cs = conn.prepareCall(sql);
cs.setLong(1, key);
cs.setString(2, id);
cs.setInt(3, java.sql.Types.INTEGER);
ResultSet rs = cs.executeQuery();
rtn = cs.getInt(3);           

while(rs.next()) {
    String name = add(rs.getString("name"));
    String age= add(rs.getString("age"));
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM