'dan sonra ResultSet'i CallableStatment'tan nasıl alırım Java'da bir mağaza yordamı yürütüyorum. Yordamlardan biri birden çok satır döndürür. I çalıştırmak kullanarak çalıştıExecuteUpdate()
int haveResults = Param.callableStatement.executeUpdate();
System.out.println(haveResults);
if (haveResults > 0) {
System.out.println("I have results"); //This statement is printed
ResultSet rs = Param.callableStatement.getResultSet();
while (rs.next()) { //This is where I am getting error:NullPointerException
//If I comment 'while(rs.next())' then code is giving output but then it can't handle multiple rows
itr1 = listOutParam.iterator();
while (itr1.hasNext()) {
Object obj = null;
obj = ParameterGetter.getParameter(itr1.next().toString(), counter1);
list.add(obj);
counter1++;
}
System.out.println(list.toString());
list1.add(list);
counter1 = counter2;
}
}
}
(), ancak o zaman eğer prosedür başarıyla yürütme değildir gösteren yanlış değeri dönüyor.
ait
execute()
kullanmaya gerek birCallableStatement
birResultSet
almak istiyorsanız iken (rs.hasNext()) {' yerine 'arasında iken (rs.next()) { '. Tıpkı ikinci saniyede yaptığınız gibi, döngü – jhamonResultSet, hasNext yöntemine sahip değildir. – Abhishek
Bağlantılı kopyada açıklandığı gibi, 'execute' (veya 'getMoreResults') öğesinden bir' false 'sonucu hiçbir sonuç olmadığı anlamına gelmez; sadece geçerli sonucun bir sonuç kümesi değil, bir güncelleme sayısı olduğu anlamına gelir. Bağlantılı sorudaki yaklaşımı kullanmak yerine, saklı yordamınızın ilk satırına 'SET NOCOUNT ON' eklemeyi de düşünebilirsiniz. –