Ocorreu um erro: You have an error in your SQL syntax

Java

18/10/2013

Galera quando eu vou alterar o arquivo da seguinte mensagem: (somente na funcao alterar, na incluir, consultar ou excluir funciona normalmente) o codigo do arquivo: [b] Ocorreu um erro: 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 codigo = 10' at line 1[/b] codigo:
 public boolean alterar(Fornecedor fornecedor) throws Exception { // inicio do método alterar

        String sqlSelect = "SELECT * FROM fornecedor WHERE codigo = ?";
        Connection conn = ConnectionFactory.getConnection();
        PreparedStatement stmtSelect = conn.prepareStatement(sqlSelect);
        stmtSelect.setInt(1, fornecedor.getCodigo());
        ResultSet rs = stmtSelect.executeQuery();
        boolean fornecedorExiste = rs.next();
        if (fornecedorExiste == true) {
            String sqlUpdate = "UPDATE fornecedor SET nome = ?, endereco = ?, telefone = ?, cnpj = ?, email = ?, login = ?, senha = ?, data_cadastro = ?,  WHERE codigo = ?";
            PreparedStatement stmtUpdate = conn.prepareStatement(sqlUpdate);


            stmtUpdate.setString(1, fornecedor.getNome());
            stmtUpdate.setString(2, fornecedor.getEndereco());
            stmtUpdate.setString(3, fornecedor.getTelefone());
            stmtUpdate.setString(4, fornecedor.getCnpj());
            stmtUpdate.setString(5, fornecedor.getEmail());
            stmtUpdate.setString(6, fornecedor.getLogin());
            stmtUpdate.setString(7, fornecedor.getSenha());
            stmtUpdate.setDate(8, new java.sql.Date(fornecedor.getData_cadastro().getTime()));
            stmtUpdate.setInt(9, fornecedor.getCodigo());
            stmtUpdate.executeUpdate();

            stmtUpdate.close();

            stmtSelect.close();

            rs.close();

            ConnectionFactory.closeConnection(conn);

            return true;

        }



        stmtSelect.close();

        rs.close();

        ConnectionFactory.closeConnection(conn);

        return false;




    }
[/b]
Kanye West

Kanye West

Curtidas 0

Respostas

André Pereira

André Pereira

18/10/2013

[quote="kanyewest"]Galera quando eu vou alterar o arquivo da seguinte mensagem: (somente na funcao alterar, na incluir, consultar ou excluir funciona normalmente) o codigo do arquivo: [b] Ocorreu um erro: 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 codigo = 10' at line 1[/b] codigo:
 public boolean alterar(Fornecedor fornecedor) throws Exception { // inicio do método alterar

        String sqlSelect = "SELECT * FROM fornecedor WHERE codigo = ?";
        Connection conn = ConnectionFactory.getConnection();
        PreparedStatement stmtSelect = conn.prepareStatement(sqlSelect);
        stmtSelect.setInt(1, fornecedor.getCodigo());
        ResultSet rs = stmtSelect.executeQuery();
        boolean fornecedorExiste = rs.next();
        if (fornecedorExiste == true) {
            String sqlUpdate = "UPDATE fornecedor SET nome = ?, endereco = ?, telefone = ?, cnpj = ?, email = ?, login = ?, senha = ?, data_cadastro = ?,  WHERE codigo = ?";
            PreparedStatement stmtUpdate = conn.prepareStatement(sqlUpdate);


            stmtUpdate.setString(1, fornecedor.getNome());
            stmtUpdate.setString(2, fornecedor.getEndereco());
            stmtUpdate.setString(3, fornecedor.getTelefone());
            stmtUpdate.setString(4, fornecedor.getCnpj());
            stmtUpdate.setString(5, fornecedor.getEmail());
            stmtUpdate.setString(6, fornecedor.getLogin());
            stmtUpdate.setString(7, fornecedor.getSenha());
            stmtUpdate.setDate(8, new java.sql.Date(fornecedor.getData_cadastro().getTime()));
            stmtUpdate.setInt(9, fornecedor.getCodigo());
            stmtUpdate.executeUpdate();

            stmtUpdate.close();

            stmtSelect.close();

            rs.close();

            ConnectionFactory.closeConnection(conn);

            return true;

        }



        stmtSelect.close();

        rs.close();

        ConnectionFactory.closeConnection(conn);

        return false;




    }
[/b]
A mensagem esta falando tudo, vamos a tradução. [b] Ocorreu um erro: 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 codigo = 10' at line 1[/b] [b]Tradução: [/b]Você tem um erro em sua sintaxe SQL; verifique o manual que corresponde para sua versão do MYSQL Server para a corrigir a sintaxe usado próximo "WHERE codigo = 10" na linha 1 Agora basta vc olhar sua sintaxe próximo da onde a mensagem esta informando. O erro esta na vírgula antes da cláusula [b][color=blue]WHERE[/color][/b]. Basta tira-la dessa forma:
String sqlUpdate = "UPDATE fornecedor SET nome = ?, endereco = ?, telefone = ?, cnpj = ?, email = ?, login = ?, senha = ?, data_cadastro = ?  WHERE codigo = ?";
Tentar entender o erro e resolve-lo é primordial que entenda as mensagens de erro. [b]OBS Moderadores: [/b]Acho que esta duvida poderia ser colocada nos tópicos referente a Banco de Dados.
GOSTEI 0
POSTAR