2012-02-12 14 views
1

私のmySQLデータベースから感覚を得るのに問題があります。私はそれに単一の行を返す必要があります有効なクエリを渡しています。しかし、それは今まで私が間違ってやっているいくつかの助言ができ、スローされている、私0Tomcat、結果セットのデータはありませんか?

public String getResultSet(String query) throws SQLException{ 
      ResultSet rs = null; 
      int results=0; 
      try { 
       con = ds.getConnection(); 
       Statement stmt = (Statement) con.createStatement(); 
       rs = stmt.executeQuery(query); 

        while(rs.next()){     
         results = rs.getInt("location_id");    
        }   

       } catch (Exception ex){    
      } finally { 
       if (con != null) con.close(); 
      }   
      return Integer.toString(results);   
     } 

エラーなしint resultsのintial値を返しますか?

TIA

+0

rs.next()でwhileループを実際に入力したかどうかをデバッガで試してみましたか? – Stainedart

+0

DBでクエリを実行し、結果が返されたことを確認しましたか? – Perception

+0

はい、クエリは有効ですが、whileループに入ります。コードが有効であると思われますか? –

答えて

1

あなたは空のボディとExceptionためのcatchブロックを持っているように見えます。これにより、SQLなどの例外を捕まえて暗黙に無視します。その後try/catchから抜け出し、results ...を返します。これはまだ0になります。


あなたがやっていることは、例外を「押しつぶす」ことです。つまり、回復またはエラー報告を行わずにそれを捕らえて取り除くことができる。これはです。悪い習慣です。さらに悪いことに、あなたはExceptionのためにこれをやっています。つまり、(おそらく)発生すると予想されるチェック例外のためだけでなく、予想できない未チェックの例外の全範囲に対しても、それを実行していることを意味します。

+0

キャッチにはアクションがありません。それだけです。私はそれがResultSetにどのように影響するのか見ていないのですか? –

+0

@Eric Banderhide例外がスローされたらどうなりますか?空のcatch節があれば、何かが間違っていたかどうかは分かりません。 – nos

+0

例外はどこにあるのですか?それはCatalina.outですか? –

0

印刷せずにすべてをキャッチしているため、例外はスローされません。もしあれば、キャッチブロックが空であるため、あなたはそれらを見ることはありません。

関連する問題