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…
=//