我尝试使用它setObject(Object o)
方法设置PreparedStatements值,如下所示:
List<String> whereValues = new ArrayList<>();
whereValues.add("m");
PreparedStatement ps = null;
try {
ps = connection.prepareStatement(query);
int i = 1;
for (String object : whereValues){
ps.setObject(i, object);
i++;
}
} catch (SQLException ex) {
System.out.println(ex);
}
执行时,这样可以正常工作,但确实会返回一行但是当相同的代码改变时(它使用声明类型的Object
作为参数而不是String
)它什么都不返回:
List whereValues = new ArrayList(); //Now list can accept anything and returns an object when used get()
whereValues.add("m");
PreparedStatement ps = null;
try {
ps = connection.prepareStatement(query);
int i = 1;
for (Object object : whereValues){
ps.setObject(i, object);
i++;
}
} catch (SQLException ex) {
System.out.println(ex);
}
执行此操作时,它不会返回任何内容,也不会抛出任何异常。有人可以解释为什么会这样吗?