Java更新SQL数据库SQL错误?

时间:2016-07-19 20:03:38

标签: java sqlite

     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)

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:5)

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

update个查询没有from子句...并且因为您已经在更新字符串的开头指定了表klant,所以它将是多余的。