Java: Удалить строку mysql, если значение не существует в ArrayList

0

Моя таблица:

-----------------
|name   |   age |
-----------------
 john        45
 maria       31
 george      24
 Toby        46
 Emmalee     55
 Simeon      16
 Gustavo     71
 Hamza       64
      ...

Ну, скажем, у меня есть ArrayList с 40 int внутри, но со случайными целыми числами. Я хочу запустить запрос, который удалит все строки из моей таблицы, но не тех, кто их возраст находится внутри моего arraylist... как я должен это делать? Извините за мой английский. я использую гугл переводчик

Мой код:

List<Integer> myList;
private static final String databaseQuery = "DELETE FROM users WHERE age ??";

try (Connection con = Database.getInstance().getLocalConnection();
        PreparedStatement ps = con.prepareStatement(databaseQuery)) 
{
    ps.executeUpdate();
}
catch (SQLException e) 
{
    e.printStackTrace();
}
Теги:

2 ответа

3
try (PreparedStatement pstmt = connection.prepareStatement(
        "DELETE FROM MyTable WHERE age NOT IN (?)")) {
    Object[] ageArray = ageList.toArray();
    Array array = connection.createArrayOf("INT", ageArray);
    pstmt.setArray(1, array);
    int updateCount = pstmt.executeUpdate();
}

Для такой цели существует класс SQL Array.

0

Я могу помочь вам с логическим мышлением. Ну, первое, что вам нужно сделать, это запросить базу данных (Select * from tableName) и сохранить результаты, затем вам нужно вложить два цикла, один из них - результат запроса, а другой - это ArrayList (while, do while или просто для), то на каждой итерации вам нужно сравнить строку, в которой вы были, с итерацией ArrayList, если это совпадение, вы должны удалить этот элемент из базы данных. Надеюсь, я смогу помочь вам с некоторой логикой.

  • 0
    Спасибо за ваши подсказки, но для этого нужно столько соединений, сколько и столбцов, которые нужно удалить: D Я ошибаюсь?
  • 0
    Нет, ты не Вам просто нужно установить соединение с базой данных ( docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html ), а затем создать несколько запросов (при совпадении элементов) для выполнения в указанном соединении. Хороший пример, вам все еще нужно реализовать свою структуру там. examples.javacodegeeks.com/core-java/sql/...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню