小编典典

如何将arraylist用作预准备的语句参数

java

我已经看过,但无法找到我遇到的以下挑战的答案。似乎很简单,但我一直无法解决。

我有一个ArrayList类型为Long->的记录ID ArrayList<Long>。我想使用此记录ID列表从另一个表中选择行。到目前为止,一切都很好。现在面对挑战…

a)我正在使用一条准备好的语句从表中选择数据,并ArrayList以此作为输入。

selectPS = dbConnection.prepareStatement("select columnA from tableA where id in ?");

上面的问题-应该如何定义参数?上面对于ArrayList类型参数似乎不正确。

b)在为准备好的语句设置参数值时,我也遇到了问题。没有设置ArrayList类型值的方法,我看不到其他可行的选择。

---> selectPS.set?????(1, arraylistParameter);
     ResultSet rs = selectPS.executeQuery(); 

非常感谢你能为我提供的任何帮助或指示。


阅读 223

收藏
2020-03-16

共1个答案

小编典典

你可能要使用setArray下面的javadoc中提到的方法:

http://docs.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html#setArray(int,java.sql.Array)

样例代码:

PreparedStatement pstmt = 
                conn.prepareStatement("select * from employee where id in (?)");
Array array = conn.createArrayOf("VARCHAR", new Object[]{"1", "2","3"});
pstmt.setArray(1, array);
ResultSet rs = pstmt.executeQuery();
2020-03-16