2016-10-13 7 views
1

新しいクレジット残高を合計する方法を呼び出した後にデータベースの更新に問題があります。JavafxのSqLiteエラー

[SQLITE_ERROR] SQLエラーまたは欠落しているデータベース(近い "'18 .0' ":構文エラー)

これが私のクエリです:

try { 
     String query = "UPDATE cards SET cardBalance '"+newCreditBalance+"' WHERE cardID = idList.getValue().toString"; 
     PreparedStatement pst = connection.prepareStatement(query); 

は私がどんな間違いを犯しました「 "+ newCreditBalance +" '?これは、javaとmyデータベースの両方で2倍の値にする必要があります。

答えて

5

構文エラーは、等号がありません:"UPDATE cards SET cardBalance="+newCreditBalanceです。

しかし、(SQL injectionという危険のために)SQLクエリや文に値を入れるのと同じような文字列連結を使用することは非常に悪い考えです。 UPDATE cards SET cardBalance = ? WHERE cardID = ?"

そして、実際にクエリを実行する前に、関連するsetterメソッドを呼び出します:その代わり、のprepareStatement()にこのような文字列を渡す

pst.setFloat(1, newCreditBalance); 
pst.setString(2, idList.getValue().toString); 

ます。またidList.getValue()のための正しいタイプを使用して、しかしからしなければなりませんあなたの例私はそれが何であるべきか分からない。

+2

また、 'idList.getValue()。toString'は有効なSQLではないので、別の構文エラーがあります。 –