2016-03-26 19 views
0

İkinci parametreyi INTEGER olarak kaydeddiğim Sonuç Kümesi sonucunu almaya çalışıyorum. Okuduklarımdan, Result Set'i kullanarak geri almadan önce nesneyi almalıyım.GetObject yöntemini kullanarak Sonuç Kümesi sonucu nasıl elde edilir?

Kod

try (Connection myConn = DBUtil.connect(); 
      CallableStatement myFirstCs = myConn.prepareCall("{call getSECTION_NAME(?,?)}")) 
     { 
      myFirstCs.setString(1, searchSection); 
      myFirstCs.registerOutParameter(2, Types.INTEGER); 
      myFirstCs.executeUpdate(); 

      String name = null; 

      System.out.println(myFirstCs.getObject(2)); 

      ResultSet myRs = null; 
      myRs = (java.sql.ResultSet)myFirstCs.getObject(2); 
      while (myRs.next()) // Retrieve result set rows 
      {     
       name=myRs.getString(1); 
       System.out.print("Section Name: "+name); 
      } 
      myRs.close(); 

bu Sonucu alınırken uygun yolu ayarlayın mı? Kaynak ile denemek kullanarak bu yöntemi deneyin. Burada bir şey özledim ResultSet myRs = myFirstCs.getObject(2, type) 2. parametremde ne yazacağımı bilmiyorum?

Numune Sadece

try (ResultSet myRs = myFirstCs.getObject(2, type))//What should I put here? 
       { 
        while (myRs.next()) 
        { 
         name = myRs.getString(1); 
         System.out.print("Section Name: "+name); 
        }//end of while 
       } 

yorum yapmaktan çekinmeyin. Herhangi bir yardım takdir edecektir. Teşekkür ederim.

+1

isnt 'myFirstCs.getInt (2)' çalışma yüksek güçte olmalıdır düşünüyorum ?? – Rehman

+0

İkinci argüman, oracle belgesinden kontrol edebileceğiniz sqlType olacaktır ... https: //docs.oracle.com/javase/7/docs/api/java/sql/CallableStatement.html sqlType - JDBC türü kodu java.sql.Types tarafından tanımlanmıştır. Parametre JDBC tür NUMERIC veya DECIMAL ise, bir ölçek değeri kabul eden registerOutParameter sürümü kullanılmalıdır. –

+0

Cidden, bu, yine, önceki sorularınızın bir kopyası, biraz tekrar yazılmış. Onları her gün kapatmaya devam etmeli miyim? –

cevap

0

@Mia iki cevap şu, ben onlardan biri

try (Connection myConn = DBUtil.connect(); 
     CallableStatement myFirstCs = myConn.prepareCall("{call getSECTION_NAME(?,?)}")) 
    { 
     myFirstCs.setString(1, searchSection); 
     myFirstCs.registerOutParameter(2, Types.INTEGER); 
     myFirstCs.executeUpdate(); 

     String name = myFirstCs.getObject(2); 
      System.out.print("Section Name: "+name); 
    } 

VEYA

try (Connection myConn = DBUtil.connect(); 
     CallableStatement myFirstCs = myConn.prepareCall("{call getSECTION_NAME(?,?)}")) 
    { 
     myFirstCs.setString(1, searchSection); 
     myFirstCs.registerOutParameter(2, Types.INTEGER); 
     myFirstCs.executeUpdate(); 

     String name = null; 

     System.out.println(myFirstCs.getObject(2)); 

     ResultSet myRs = null; 
     myRs = myFirstCs.getResultSet(); 
     while (myRs.next()) // Retrieve result set rows 
     {     
      name=myRs.getString(1); 
      System.out.print("Section Name: "+name); 
     } 
     myRs.close(); 
+0

Bana bir hata veriyor "Integer java.sql.ResultSet" – Francisunoxx

+0

@Mia Legaspi'ye gönderilemiyor. Cevabı iki kod ile güncelledim. Bu kodu dene. – Ashu

+0

Bana bir "NullPointerException" veriyor – Francisunoxx

İlgili konular