PessoALL
Estou tendo problemas em utilizar o metodo PreparedStatement com o MySQL.
Eu tenho uma classe DAO que implementa o metodo criarAeroporto() como exemplo abaixo:
[code] public void criarAeroporto(Aeroporto aeroporto) throws DAOException {
//validando informações
if(aeroporto.getId() == null){
throw new DAOException(“Error : O id deve ser informado.”);
}
try{
// Preenchendo parametros...
List ListaParametros = new ArrayList();
//ID
params = new DBQueryParams();
params.setTipo(Types.VARCHAR);
params.setValor(aeroporto.getId());
ListaParametros.add(params);
//DESCRICAO
params = new DBQueryParams();
params.setTipo(Types.VARCHAR);
params.setValor(new String(aeroporto.getDescricao()));
ListaParametros.add(params);
query = new DBQuery();
i = query.executeUpdate(SQL_CREATE_AEROPORTO, ListaParametros);
}catch(Exception e){
throw new DAOException(e.getMessage());
}
}
[/code]
E possui uma classe onde eu passo as minhas querys DBQuery:
[code]public ResultSet executeQuery(String sql, List params) throws Exception{
try {
connection = DBConnection.getConnection();
pstmt = connection.prepareStatement(sql);
pstmt.clearParameters();
Iterator iterator = params.iterator();
int x = 0;
while(iterator.hasNext()){
x++;
parametros = (DBQueryParams) iterator.next();
pstmt.setObject(x,parametros.getValor(),parametros.getTipo());
}
rs = pstmt.executeQuery();
return rs;
} catch (Exception e) {
throw new Exception("Error : " + e.getMessage());
}
}[/code]
Ao tentar executar o metodo criarAeroporto() me retorna o seguinte mensagem de erro :
[quote]
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 ‘? , ? )’ at line 1[/quote]
O que pode estar acontecendo ? algum problema na minha passagem de parâmetros ?
Ps: A constante SQL_CREATE_AEROPORTO foi declarada dessa maneira:
SQL_CREATE_AEROPORTO = "INSERT INTO AEROPORTO(ID,DESCRICAO) VALUES( ? , ? )"
Sds.