如何在准备好的语句中设置参数列表?

Chr*_*ris 28 java postgresql jdbc prepared-statement

我有一个名单,例如:

List<String> names = ...
names.add('charles');
...
Run Code Online (Sandbox Code Playgroud)

并声明:

PreparedStatement stmt = 
  conn.prepareStatement('select * from person where name in ( ? )');
Run Code Online (Sandbox Code Playgroud)

如何做到以下几点:

stmt.setParameterList(1,names);
Run Code Online (Sandbox Code Playgroud)

有解决方法吗?谁能解释为什么这种方法丢失了?

使用:java,postgresql,jdbc3

ear*_*cam 21

这个问题很老,但是没有人建议使用setArray

这个答案可能有助于/sf/answers/716821171/

  • setArray不能与MySQL或JavaDB一起使用,因为它们不支持SQL中的ARRAY数据类型.请参阅顶部的说明:https://docs.oracle.com/javase/tutorial/jdbc/basics/array.html (3认同)

Nic*_*olt 18

简单地通过设置PreparedStatement我所知道的列表,没有干净的方法来做到这一点.

编写构造SQL语句的代码(或更好地替换单个?或类似的标记),并使用适当数量的问号(与列表中的数字相同),然后遍历列表,为每个标记设置参数.