Ошибка Java sql.SQLException: индекс параметра вне диапазона (1 >)

#java #mysql

#java #mysql

Вопрос:

у меня ошибка в моем коде, но я не знаю, что это… (Java MySQL)

 public void deleteClientes(int nit){
   sql = "DELETE FROM `clientes` WHERE `clientes`.`nit` =  ";
   delete(sql,nit);
  

}

Метод, который получает:

  public void delete(String sql,int id){
    final QueryRunner qr = new QueryRunner(true); 
    try {
        qr.update(conexion(),sql,"%" id "%");
    } catch (SQLException ex) {
       System.err.println("Error" ex);
    }
}
  

Ответ №1:

В вашем запросе нет заполнителя ? . Это должно быть:

 "DELETE FROM `clientes` WHERE `clientes`.`nit` =  ?"
  

Комментарии:

1. Ничего, ошибка сейчас не выводится, но строка не удаляется : (

Ответ №2:

Необходимо добавить ? в инструкцию sql, где данные будут размещены на основе параметра

 sql = "DELETE FROM `clientes` WHERE `clientes`.`nit` =  ?";
  

и

  qr.update(conexion(),sql,id);
  

Комментарии:

1. Ничего, ошибка сейчас не выводится, но строка не удаляется : (

2. проверьте тип данных и условие where, данные будут удалены, если условие соответствует

3. "%" id "%" почему вы добавили % ?

4. Listo! ошибка исправлена … я изменил фрагмент: qr.update(conexion (), sql,»%» id «%»); на: qr.update(conexion (), sql, id); и все!