在方法resultset.next()下面的代码中返回false
String sql = "{?= call fun_consolidate_retrieve_vector_receipt_payment_details(?,?,?,?,?,?)}";
callableStatement = con.prepareCall(sql);
callableStatement = con.prepareCall(" {? = call fun_retrieve_vector_receipt_payment_details(?,?,?,?,?,?)}");
callableStatement.registerOutParameter(1, Types.OTHER);
callableStatement.setString(2, "PAYMENT");
callableStatement.setInt(3, 47);
callableStatement.setString(4, "24-05-2013");
callableStatement.setString(5, "24-09-2013");
callableStatement.setString(6, "Y");
callableStatement.setObject(7, resultSet);
con.setAutoCommit(false);
callableStatement.execute();
resultSet = (ResultSet) callableStatement.getObject(1);
boolean next = resultSet.next();
为什么会这样?如果我从我的数据库调用相同的存储过程,它会产生2行输出(提供与java代码相同的输入)
答案 0 :(得分:1)
你的头衔表达了你的困惑。 ResultSet.next()返回布尔值,不是任何可以为null的东西。你需要在 getObject()之前调用,而不是之后。