我试图为列表中的每个值运行一个新的SQL命令。 我有以下代码,它只是重复相同的值,并且在我的列表中有很多这样的值。
请注意,我必须通过数组列表中的值的数量来循环SQL,并将每个值作为SQL中的名称插入,如下所示。
最好的方法是什么,因为这绝对不是最佳方法。
int listSize = al.size();
for(int i = 0; i < listSize; i++) {
ResultSet rs1 = name.executeQuery("SELECT sum(hours) FROM PROJECT_TIME WHERE DATE = '"+date+"' AND name = '"+al.listIterator().next()+"'");
al1.add(rs1.getString(1));
rs1.close();
}
System.out.println(al1);
结果:
[70, 70, 70, 70, 70, 70, 70, 70, 70, 70]
预期结果:
[70,80,110,60,35,10,15,10,0,25]
name in (print the list)
这个语句吗? - AllTooSiral.listIterator().next()
总是返回相同的元素。你需要在循环外获取迭代器,然后使用其方法遍历集合。 - Andrew ThompsonPreparedStatement
来避免这种情况。 - Andrew Thompson