2016-08-22 20 views
0

我想在我的數據庫獲取某個表中的列,但我得到了以下錯誤:錯誤在MySQL表中發現一列

值java.sql.SQLException:列「價格」未找到。 在com.mysql.jdbc.SQLError.createSQLException(SQLError.java:996) 在com.mysql.jdbc.SQLError.createSQLException(SQLError.java:935) 在com.mysql.jdbc.SQLError.createSQLException(的SQLError。 java:924) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:870) at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1064) at com.mysql.jdbc.ResultSetImpl。 getDouble(ResultSetImpl.java:2234) 在webServices.TheServicesImplementation.findShops(TheServicesImplementation.java:964) 在main.MainFunction.main(MainFunction.java:26)

我使用的查詢是:

private final String priceSQL = "select price as price from items_shops i where i.shop_id = ? and i.item_id = ?"; 

,我的代碼是:

try { 

    preparedStatementB = dbConnection.prepareStatement(priceSQL); 
    preparedStatementB.setInt(1, shop_id); 
    preparedStatementB.setInt(2, item_id); 
    setB = preparedStatementB.executeQuery(); 
    if (!setB.next()) { 
     System.out.println("Error finding price."); 
     return null; 
    } 
    else 
    { 
     price = set.getDouble("price"); 
    } 
}catch (SQLException e) { 
    e.printStackTrace();   
}finally{ 
    try { 
     preparedStatementB.close(); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
} 

但是這是奇怪,作爲列price在表items_shops(執行查詢的SQL控制檯成功)存在。任何人都可以幫我嗎?

+0

您是否嘗試從mysql控制檯執行此查詢? – kosa

+0

是的,它成功了......:/ – Marievi

+1

您確定連接設置中的模式定義是正確的嗎?你能否從同一張桌子獲得另一列? – kosa

回答

3

結果集被分配到名爲setB的變量,但您試圖從名爲set的變量中提取價格。

+0

好的。如果它不是一個錯字,這可能是問題所在。 – kosa

+0

它本來就是一個編譯錯誤:P – Deroude

+1

如果代碼碰巧聲明瞭一個具有正確類型名稱的變量,那麼不應該這樣做。 –