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



它是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"));
} 

最新更新