2016-07-19 8 views
1
 try (PreparedStatement stmt = conn. 
     prepareStatement(
     "update klant set naam = ?, voornaam = ?, geboortedatum = ?, opmerking = ?, debetstand_limiet = ?, actief = ? from klant where id = ?");) { 

     stmt.setString(1, teWijzigenKlant.getNaam()); 
     stmt.setString(2, teWijzigenKlant.getVoornaam()); 
     stmt.setString(3, teWijzigenKlant.getGeboorteDatum().toString()); 
     stmt.setString(4, teWijzigenKlant.getOpmerking()); 
     stmt.setDouble(5, teWijzigenKlant.getDebetstandLimiet().doubleValue()); 
     byte b; 
     if (teWijzigenKlant.isActief() == true){ 
      b = 1; 
     } 
     else{ 
      b = 0; 
     } 
     stmt.setByte(6, b); 
     stmt.setInt(7, teWijzigenKlant.getId()); 
     stmt.execute(); 

このコードを含むメソッドをテストしようとすると、SQL構文にエラーがありますが、それが何であるかわからないようです...データベースは次の列で構成されています。Javaの更新SQLデータベースSQLエラー?

1 id int(11)   Nee Geen AUTO_INCREMENT Veranderen Veranderen 
2 naam varchar(64) latin1_swedish_ci  Nee Geen  Veranderen 
3 voornaam varchar(32) latin1_swedish_ci  Nee Geen   
4 geboortedatum date   Nee Geen  Veranderen Veranderen 
5 opmerking text latin1_swedish_ci  Ja NULL  Veranderen 
6 debetstand_limiet double   Nee Geen  Veranderen Veranderen 
7 actief tinyint(1) 

誰かが間違っていることを知っていますか?

答えて

5
"update klant set [..snip..] from klant where id = ?");) { 
           ^^^^^^^^^^ 

updateクエリはfrom句を持っていない...そして、あなたはすでに更新文字列の先頭にテーブルklantを指定したので、とにかく冗長になります。

+0

Genius!ありがとう、私はできるだけ早くあなたの答えを受け入れる、それはimmediatly修正され、私は残りの私のコードは意図したように動作して満足している。ありがとう! :) – user3117628

関連する問題