PreparedStatement + setArray

Amigos, peço a ajuda de vcs em um pequeno probleminha que venho enfrentando.
É o seguinte:

Tenho a seguinte linha de codigo:
PreparedStatement stmt = conn.prepareStatement(“Select * from tabela where coluna in (?)”);

Preciso setar esse ? com um conjunto de valores e naum há uma quantidade exata para esse numero de valores.
Achei que isso se resolveria com o metodo setArray de preparedstatement…

Mas alguem sabe como eu o crio??

Jah dei uma boa pesquisada mas naum encontrei nda de muita ajuda…

Aguardo a ajuda de vcs…

Crie uma classe javabeans para vc setar o objeto que deseja

depois chame o DAO passando como parametro o objeto

ai vc le ele do javabeans

stmt.setString(1, objeto.getDado()); //se for string
stmtm.setInt.... //se for inteiro 

e por ai vai

Abraços

O que vc pode fazer tambem é criar um String e ir colocando nela os valores que deseja

depois vc passa a string para o ?

abraços

Na verdade naum rola colocar os valores dentro de um String porque a coluna que eu vou pesquisar é com valores inteiros e o banco reclama

=//

E a sua alternativa com Java Beans pra ser sincera eu naum entendi muito bem…

Acho que o que o analyser quis passar a idéia de criar no proprio sql os parâmetros para o in como no seguinte sql:

select count(*) from audience where month_no in (1,2,3,4,5,6);

seu PS seria:

select count(*) from audience where month_no in (?);

então vc montaria um string tipo “1,2,3,4,5,6” para passar como parâmetro

vhuzalo ,
Isso eu entendi…
Mas o problema é que eu estou a coluna que eu estou setando possui ints…
Sendo assim, para setar ‘1,2,3’ eu preciso usar o setString, o que o banco de dados não reconhece…
Ocorre erros de cast …

Ai ai ai…
Isso está me dando dor de cabeça…

Mas obrigada pelo apoio vhuzalo e analyser …

Bom então quem sabe não utilizar este recurso da PreparedStatement para este parâmetro, assim (utilizando o exemplo anterior):

  String parametro = "1,2,3,4,5,6";
  PreparedStatement stmt = conn.prepareStatement("Select * from tabela where coluna in ("+parametro+")"); 

Então vc prepara o string antes tb.

:thumbup:

Bem, essa é uma alternativa…
Mas o problema é que naum estou mexendo em uma aplicação pequena…
Em que somente eu mexi…
Tenho que fazer algo que naum mude a estrutura e de forma que naum tenha impacto na aplicação que jah está funcionando…

=//