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