Моя таблица:
-----------------
|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();
}
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.
Я могу помочь вам с логическим мышлением. Ну, первое, что вам нужно сделать, это запросить базу данных (Select * from tableName) и сохранить результаты, затем вам нужно вложить два цикла, один из них - результат запроса, а другой - это ArrayList (while, do while или просто для), то на каждой итерации вам нужно сравнить строку, в которой вы были, с итерацией ArrayList, если это совпадение, вы должны удалить этот элемент из базы данных. Надеюсь, я смогу помочь вам с некоторой логикой.