簡體   English   中英

我們應該傳遞給方法什么來完成它

[英]What should we have to pass to method to complete it

我需要通過什么才能完成此方法。 錯誤是:

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

這是我在校准此方法時使用的

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

由於您的SQL不需要任何參數,因此您只需

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

它需要3個參數,而您僅提供了一個。 只是打電話說,

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

您需要將所有3個參數傳遞給函數fireSelect()

您的SQL不需要參數,它是通過串聯建立的,這不好。 fireSelect似乎是使用准備好的語句的幫助者,您正在避免這樣做。

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

即使這樣

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

您缺少String []類型String []值 ,可以將其傳遞為null (在您的情況下),如果按以下方式調用它會更好:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM