2016-10-12 1 views
0

Что мне нужно передать, чтобы завершить этот метод. Ошибка:Что нам нужно передать методу, чтобы завершить его?

Метод метода fireSelect (String, String [], String []) в типе DBConnection не применим для аргументов (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; 
} 

и это я должен использовать, чтобы пройти во время кала этого метода

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

Если вы читаете эту ошибку, вы передаете одну строку, но после этого 'fireSelect' ожидает также два массива String. В Java параметр является обязательным, нет значения по умолчанию, как некоторые другие langage – 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

вам необходимо пройти все 3 Аргументов в функции fireSelect()

0

Ваш SQL не ожидает параметра, он создается путем конкатенации, что плохого. fireSelect представляется полезным помощником для использования подготовленного заявления, и вы избегаете этого.

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

даже это

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

Как ваш SQL не ожидает Счетчики, вы можете просто сделать

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

Он ожидает 3 аргумента, и вы предоставили только один. Просто позвоните как,

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

Я уже это сделал ... Но этот dosenot работает в моем коде – 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}); 
Смежные вопросы