MySQL Java Update Syntax

Ich habe nur versucht, ein Update in meiner Anwendung zu verwenden, kann es aber nicht. Auf der Konsole funktioniert dieser mysql-Befehl, hier jedoch nicht.

Nun, ich benutze dies in meinem Programm:

    conexao = poolMySQL.connect();
    final String sql = "UPDATE professor  SET codlocal = ?  WHERE codprof = ?";

    pstmt = conexao.prepareStatement(sql);


    pstmt.setInt(1, local);
    pstmt.setInt(2, id);
    try {
        pstmt.executeUpdate(sql);
    } catch (SQLException ex) {
        Logger.getLogger(ProfessorDAO.class.getName()).log(Level.SEVERE, null, ex);
    }

Nur zur Erinnerung, codlocal ist ein Fremdschlüssel aus einer anderen Tabelle namens Localidade. Ich habe ein paar Beispiele über Join gesehen, aber ich kann mir nicht vorstellen, wie das bei mir funktionieren kann.

Und ich verstehe:

    Grave: null
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?  WHERE codprof = ?' at line 1
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
    at com.mysql.jdbc.Util.getInstance(Util.java:384)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3566)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2562)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1664)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1583)
    at DAO.ProfessorDAO.atualizaLocalidade(ProfessorDAO.java:153)
    at DAO.Main.main(Main.java:23)

Was kann ich also tun?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage