2016-07-19 2 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 구문에 오류가 있지만 그게 무엇인지 파악할 수 없다고합니다 ... 내 데이터베이스는 다음 열로 구성됩니다.자바 업데이트 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! 고맙습니다. 가능한 한 빨리 답변을 수락하겠습니다. 즉각적으로 수정되었으며 나머지 코드는 의도 한대로 작동하고 있습니다. 감사! :) – user3117628