:?: E ai pessoal, como vão as coisas por ai?
Estou tentando fazer um PreparedStatement, em uma query com a cláusula in, alguém por ai já usou isso?
Um grande abraço para todos e qualquer ajuda é bem vinda!
Estou querendo fazer uma coisa mais ou menos assim:
[code] String qry =
“select * \n” +
“from \n” +
" tabela, \n" +
“where \n” +
" coluna in (?)";
try {
Class.forName("org.postgresql.Driver");
Connection conn = DriverManager.getConnection("jdbc:postgresql://192.107.14.144:5432/desenv?charSet=UTF-8","postgres","senha");
PreparedStatement st = conn.prepareStatement(qry);
// **********************************
// é isso que estou tentando fazer
// **********************************
int[] a = {1,2,3,4};
st.setAlgumaCoisa(1,a);
// **********************************
ResultSet rs = st.executeQuery();[/code]
EddiE
Março 9, 2004, 9:34am
#2
String qry =
"select *
" +
"from
" +
" tabela,
" +
"where
" +
" coluna in (?)";
? tá certo que não tem nada a ver com a sua pergunta mas não precisa dele.
:arrow: Achei um negócio na net, não sei se é o jeito certo, mas funcionou… heheheh…
Valeu galera. Mesmo assim, não achei que esse é o jeito certo, se alguém tiver alguma outra dica por ai…
um abraço…
Vejam que o ? está comentado, /* ? /, depois no setString, fecho o comentário dos dois lados e adiciono o in setString(" /(1,2,3)/").
o que aconteceu, as aspas do setString ficam comentadas…
na query vai ficar assim: in / ’/ (1,2,3) / ’*/
[code] String qry =
“select * \n” +
“from \n” +
" tabela \n" +
“where \n” +
" coluna in /* ? */";
try {
Class.forName("org.postgresql.Driver");
Connection conn = DriverManager.getConnection("jdbc:postgresql://192.107.14.144:5432/desenv?charSet=UTF-8","postgres","senha");
PreparedStatement st = conn.prepareStatement(qry);
// **********************************
// é isso que estou tentando fazer
// **********************************
st.setString(1,"*/(1,2,3)/*");
// **********************************
ResultSet rs = st.executeQuery();[/code]
Ugh… :shock:
Faz muita falta tambem um setXxx que recebesse o nome do campo, ao inves do indice numerico dele… algo como
INSERT INTO table ( :nome, :idade )
...
p.setString("nome", "meuNome");
p.setInt("idade", 99);
...
Rafael