PreparedStatement + IN Parameter - Essa quero ver quem sabe!

Galera… é o seguinte!!!

Preciso fazer um select usando o parametro IN: … WHERE CAMPO IN (1,3,4,6)

O CAMPO é do tipo int

Eu utilizo o PreparedStatemente para executar meus comandos SQL (SQLServer).

Acontece que estou trabalhando com meus comandos SQL dentro de um arquivo de properties… pois necessito altera-los com uma certa frequencia, portanto nao tem como eu ficar concatenando String no comando SQL para criar o comando.

basicamente o que preciso fazer é:

String = "SELECT * FROM TABLE WHERE ID IN (?)"; PreparedStatement ps = con.prepareStatement(sql);

O proximo passo seria “setar” o valor do campo ?
Agora voces vao me dizer: “Traquilo… basta usar o setString(“1,3,4,6”)” (Percebam que passei a tarde toda pesquesiando no Google!!!)

Acontece que isso nao pode ser feito, uma fez que o campo da coluna é do tipo int, o que me retorna um erro de datatype.

Fazendo minhas pesquisas, encontrei a seguinte nota na documentacao oficial java:

[list]Note: The setter methods (setShort, setString, and so on) for setting IN parameter values must specify types that are compatible with the defined SQL type of the input parameter. For instance, if the IN parameter has SQL type INTEGER, then the method setInt should be used.[/list]

http://java.sun.com/j2se/1.4.2/docs/api/java/sql/PreparedStatement.html

Segundo a documentacao, quando se utiliza o parametro IN, deve-se utilizar para cada tipo de dado do campo, seu set respectivo. No meu caso, tenho que usar setInt.

O problema é que nao explicam como setar MAIS de um valor!!!

Alguem tem ideia de como fazer isso?!?!?!?

Absssss

já tentou setArray(int, java.sql.Array) ?

http://java.sun.com/j2se/1.4.2/docs/api/java/sql/PreparedStatement.html#setArray(int,%20java.sql.Array)