PreparedStatement setObject方法将参数传递为String或Object

时间:2016-07-16 04:03:01

标签: java jdbc collections

我尝试使用它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);
 }

执行此操作时,它不会返回任何内容,也不会抛出任何异常。有人可以解释为什么会这样吗?

0 个答案:

没有答案