PreparedStatement com mysql

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!

[code] 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();
        }
    }
}[/code]

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!

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: