2016-10-12 1 views
0

このメソッドを完了するためには、何を渡す必要がありますか?エラー:完了するためにメソッドに渡す必要があるもの

DBConnection型のfireSelect(String、String []、String [])メソッドは引数(String)には適用されません。

これはメソッドです。)

public static ResultSet fireSelect(String query, String[] types, 
     String[] values) { 
    try { 
     PreparedStatement ps = getInstance().prepareStatement(query); 
     if (types != null) { 
      for (int i = 0; i < types.length; i++) { 
       if (types[i].equals("int")) 
        ps.setInt((i + 1), Integer.parseInt(values[i])); 
       else if (types[i].equals("string")) 
        ps.setString((i + 1), values[i]); 
       else if (types[i].equals("double")) 
        ps.setDouble((i + 1), Double.parseDouble(values[i])); 
      } 
     } 
     return ps.executeQuery(); 
    } catch (Exception e) { 
     try { 
      connection = null; 
      if (cnt < 2) { 
       connection = getInstance(); 
       cnt++; 
       fireSelect(query, types, values); 
      } else { 
       cnt = 0; 
      } 
     } catch (Exception ee) { 
      System.out.println("Exception :" + ee); 
     } 
    } 
    return null; 
} 

、これは私はあなたが機能fireSelect(にすべての3 argumensを渡す必要がありCALの間に渡すために使用し、この方法

ResultSet rs = DBConnection.fireSelect(
            "select dealer_id,car_servicing,car_servicing,cost,features " 
              + " from dealer_car,carservicing where " 
              + "dealer_car.car_servicing=carservicing.car_servicing and dealer_id=" 
              + dealerId); 
+0

エラーを読んだ場合、1つのStringを渡していますが、それに続く2つのString配列も 'fireSelect'に期待しています。 Javaでは、パラメータは必須ですが、他の言語のようなデフォルト値はありません – AxelH

答えて

0

あなたはのString []型のString []型の値を逃している、あなたが呼び出す場合良いはず、(あなたのケースで)ヌルとしてそれを渡すことができますそれは次のように:

String sql = "select dealer_id,car_servicing,car_servicing,cost,features from 
dealer_car,carservicing where dealer_car.car_servicing=carservicing.car_servicing 
and dealer_id=:dealer_id"; 
String[] types = new String[]{"int"}; //or maybe string? 
String[] vals = new String[]{dealerId}; 
ResultSet rs = DBConnection.fireSelect(sql, types, vals); 
0

を持っています

0

あなたのSQLはパラメタを期待していませんが、それは連結によって構築されています。 fireSelectは、準備されたステートメントを使用するのに役立ちそうで、あなたはこれを避けています。

fireSelect("select * from ... where id=?", new String[]{"int"}, new String[]{"42"}); 

でもこの

fireSelect((String)null,(String[])null,(String[])null); 
2

あなたのSQLがどのPARAMATERSを期待していないとして、あなたは、単に

ResultSet rs = DBConnection.fireSelect(sql, null, null); 
1

を行うことができますそれは3つの引数を期待して、あなただけのものを提供します。 だけのように呼び出し、

ResultSet rs = DBConnection.fireSelect("Select Query", null, null); 
+0

私はすでにこれを行っています...しかし、このコードは私のコードでは動作しません – Vaidya

+0

返信ありがとう – Vaidya

0

あなたfireSelect方法は3つの引数を期待している:

あなたが使用することができます

ResultSet rs = DBConnection.fireSelect(
        "select dealer_id,car_servicing,car_servicing,cost,features " 
        + " from dealer_car,carservicing where " 
        + " dealer_car.car_servicing=carservicing.car_servicing and dealer_id=" 
        + dealerId, 
        new String[]{"int"}, 
        new String[]{dealerId}); 
関連する問題