удаление таблиц в MySQL из jdbc

Проблема при удалении таблиц из jdbc

У меня есть. jar, который удаляет записи из нескольких таблиц с помощью заранее подготовленного оператора

я сделал это так:

-- SQL
delete from tabla_a using tabla_a join tabla_c join tabla_b join tabla_d
where tabla_a.tabla_c_id = tabla_c.id and tabla_c.tabla_b_id = tabla_b.id
and tabla_b.tabla_d_id = tabla_d.id and tabla_d.field = 2;

примечание: где (?) - целое число

// Java
conn = DriverManager.getConnection(dsn, user, pass);
stmt = conn.createStatement();
int rows = stmt.executeUpdate(query);

не работает, не удаляет записи, я протестировал SQL непосредственно в MySQL и работает правильно.


person rkmax    schedule 02.10.2011    source источник
comment
Вы отключили режим автоматической фиксации в коде JDBC?   -  person Jim Garrison    schedule 03.10.2011
comment
Я пробовал это с включенной автоматической фиксацией, а также с отключенной   -  person rkmax    schedule 03.10.2011


Ответы (1)


Вместо этого попробуйте использовать PreparedStatement и установите параметры. Что-то в этом роде:

conn = DriverManager.getConnection(dsn, user, pass);
stmt = conn.prepareStatement(query);
stmt.setInt(1, 2);
int rows = stmt.executeUpdate();
person Óscar López    schedule 02.10.2011
comment
Возможно, вам следует опубликовать код в точности как есть. Например, во фрагменте SQL в запросе нет вопросительного знака, а во фрагменте Java вы опускаете объявления типов и т. д. - person Óscar López; 03.10.2011
comment
Я забыл добавить таблицу в запрос, но это не сработало, поэтому значение передается как параметр. - person rkmax; 03.10.2011
comment
Hágame caso y transcriba aquí el código completo de la parte уместно, de lo contrario no lo voy a poder ayudar. Y menos con ese inglés :P - person Óscar López; 03.10.2011
comment
si que pena con google translate, pero lo que queria decir era que ya encontre la solucion y hubo un error con el campo de where por eso no borraba - person rkmax; 03.10.2011