PreparedStatement com mysql

1 resposta
E

Galera seguinte,
eu tenho um insert em um banco de dados mysql que funciona normalmente quando eu uso Statement mas, quando eu uso
PreparedStatement ocorre um erro, abaixo segue o código e logo
após o ERRO!

public void insertAutor(AutorVO autor) {
        
    	/** Objeto da classe de conexão */
    	Conexao db = new Conexao();

        /** Objeto de conexão com o banco */
        Connection con = db.conectar();

        /** Objeto statement */
    	PreparedStatement ps = null;

        /** String com a sentença sql */
        String sql = " INSERT " 
        	       + " INTO " 
	       + " AUTOR " 
	       + " (NOME_AUTOR, " 
	       + " SOBRE_NOME_AUTOR, " 
	       + " SEXO_AUTOR) " 
	       + " VALUES ( ?, ?, ? ) "; 
        
        System.out.println(sql);

        try {

            /** Statement praparandos-se */
            ps = con.prepareStatement( sql );
            
            /** Inserindo os dados do PreparedStatement ( ps ) */
            ps.setString( 1, autor.getNomeAutor().toString() );
            ps.setString( 2, autor.getSobreNomeAutor().toString() ); 
            ps.setString( 3, autor.getSexoAutor().toString() );
            
            /** Execução da sentença SQL */
            ps.executeUpdate( sql );
            
        } catch (SQLException e) {
        	
            e.printStackTrace();
        } 
        finally {
        	
            try {
            	
                con.close();
            } 
            catch (SQLException e) {
            	
                e.printStackTrace();
            }
        }
    }

ERRO
java.sql.SQLException: Syntax error or access violation, message from server: "You have an error in your SQL syntax near '?, ?, ? ) ' at line 1"

OBS:O autor do topico sempre pode alterar o seu topico, não é necessário criar outro!

1 Resposta

J

O problema tá aqui:

ps.executeUpdate( sql );

Chama sem o parametro, assim:

ps.executeUpdate();

Blz… é que vc está passando a String sql que contém ainda os ?.. por isso dá o erro de sintaxe
:wink:

Criado 9 de julho de 2004
Ultima resposta 9 de jul. de 2004
Respostas 1
Participantes 2