2016-03-26 12 views
0

私はINTEGERと私の2番目のパラメータを登録する私の結果セットの結果を取得しようとしています。私が読んだことから、結果セットを使用してオブジェクトを取得する前に、まずオブジェクトを取得する必要があります。getObjectメソッドを使用して結果セットから結果を取得する方法は?

コード

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(); 

は、この結果セットを取得する適切な方法ですか?リソースでtryを使ってこのメソッドを試してみます。私はここで何かを逃したResultSet myRs = myFirstCs.getObject(2, type)私は私の2番目のパラメータに入れてわからない?

サンプルのみ

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 
       } 

コメントをお気軽に。どんな助けもありがたいです。ありがとうございました。

+1

イマイチ 'myFirstCs.getInt(2)'作業をワーク・すべきだと思います? – Rehman

+0

2番目の引数は、oracle docから確認できるsqlTypeです。https://docs.oracle.com/javase/7/docs/api/java/sql/CallableStatement.html sqlType - JDBCのタイプ・コードjava.sql.Typesによって定義されています。パラメータがJDBC型NUMERICまたはDECIMALの場合、スケール値を受け入れるバージョンのregisterOutParameterを使用する必要があります。 –

+0

真剣にも、これは、以前の質問と重複して、若干言い換えられたものです。私は毎日閉じておく必要がありますか? –

答えて

0

@Mia 2つの答えを、以下、私はそれらのいずれかが

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); 
    } 

OR

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

これは私にエラー「java.sql.ResultSetに整数をキャストできません」を返します – Francisunoxx

+0

@Mia Legaspi私は2つのコードで答えを更新しました。これらのコードを試してください。 – Ashu

+0

それは私に 'NullPointerException'を与えています – Francisunoxx

関連する問題