使用preparedstatement时获取setArray的错误

时间:2014-04-04 17:15:49

标签: java jdbc prepared-statement

请考虑以下代码:

 List<Integer> ids = new ArrayList<Integer>();

 ids.add(SelectQueueRS.getInt("DTSId_int"));

 // SelectQueueRS is a ResultSet object


 PreparedStatement updateOriginal = connRemote.prepareStatement(

  "UPDATE test.contactqueue SET DTSStatusType_ti = 3, Queued_DialerIP_vch = ?" +
  "WHERE DTSId_int IN (?)"); 

  updateOriginal.setString(1, ip);
  updateOriginal.setArray(connRemote.createArrayOf("string", ids.toArray()));
  updateOriginal.executeUpdate;

我在以下几行中遇到以下错误:

在线:updateOriginal.setArray(connRemote.createArrayOf("string", ids.toArray()));

enter image description here

在线:updateOriginal.executeUpdate;

错误说:not a statement

请告知我该如何更正?

由于

1 个答案:

答案 0 :(得分:0)

您在updateOriginal.setArray中缺少参数索引,它应该是updateOriginal.setArray(2, connRemote.createArrayOf("string", ids.toArray()));

另一个问题是,您希望创建一个数据库字符串类型数组,其中您的语句期望它是数字类型的数组 - 但这可能是无关紧要的

第二个错误是由缺少括号引起的......它应该是updateOriginal.executeUpdate();