2017-06-13 4 views
1

私は以下のJava関数を持っています。私が「バナナン」として成分ナアムに入ると、それは私にエラーを与えます:"ERROR:Column does not exist"既存のカラムを使用

column does not exist.

しかし、カラムは存在します。これは大文字/小文字と関係がありますが、ステートメントの最後に.get(0)が必要なので、これをどのように修正できるかはわかりません。 .get(0)を削除すると、成分の代わりに戻り値のリストが得られるので、この部分が必要です。

アイデア?とても有難い。

public Ingredient findByString(String ingredientNaam) { 
    return selectIngredients("SELECT * FROM ingredient WHERE ingredientnaam = "+ingredientNaam).get(0); 
} 
+0

'SELECT * FROM ingredients WHERE ingredientsnaam = 'Banaan''はこのSQLの働きですか? –

+2

SQLにキャッチするのではなく、文に成分名をパラメータとして追加することを検討してください。それはより安全になり、引用を心配する必要はありません。 – khelwood

答えて

2

成分は文字列なので、引用する必要があります。そうしないと、列名とみなされます。

public Ingredient findByString(String ingredientNaam) { 
    return selectIngredients("SELECT * FROM ingredient WHERE ingredientnaam = '"+ingredientNaam +"'").get(0); 
} 
+0

ありがとう、それは私が探していたものです。 –

関連する問題