我的表:
-----------------
|name | age |
-----------------
john 45
maria 31
george 24
Toby 46
Emmalee 55
Simeon 16
Gustavo 71
Hamza 64
...
好吧,假设我有一个内部有40个整数但有随机整数的ArrayList。 我想运行一个查询,它将删除我表中的所有行,但不会删除那些年龄在我的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();
}
答案 0 :(得分: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类用于此目的。
答案 1 :(得分:0)
我可以用一些逻辑思维来帮助你。 那么你需要做的第一件事是查询数据库(从tableName中选择*)并保存结果,接下来你需要嵌套两个周期,一个是查询结果,另一个是所说的ArrayList(同时,do while或a然后在每次迭代中你需要将你所在的行与ArrayList的迭代进行比较,如果匹配则你应该从DB中删除该元素。 希望我能用一些逻辑来帮助你。