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语法有错误,但我似乎无法弄清楚它是什么...我的数据库包含以下列:
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)
任何人都知道我做错了什么?
答案 0 :(得分:5)
"update klant set [..snip..] from klant where id = ?");) {
^^^^^^^^^^
update
个查询没有from
子句...并且因为您已经在更新字符串的开头指定了表klant
,所以它将是多余的。