Olá… tenho uma prepared statement como o exemplo:
GETBYATT (“SELECT * FROM DADOS WHERE ? LIKE ?”);
gostaria de saber se isso é válido, pois está dando erro.
Gostaria de saber também, se for válido, como setar os valores dela!!!
Olá… tenho uma prepared statement como o exemplo:
GETBYATT (“SELECT * FROM DADOS WHERE ? LIKE ?”);
gostaria de saber se isso é válido, pois está dando erro.
Gostaria de saber também, se for válido, como setar os valores dela!!!
// SQL
strSql = "insert into tabela (codigo,nome) values(?,?)";
//Atribuindo sql para o preparedStatement
pstmt = con.prepareStatement(strSql);
pstmt.clearParameters();
// seta os valores do preparedStament
pstmt.setInt(1, codigo);
pstmt.setString(2, nome);
//Execução
pstmt.executeUpdate();
Eu gostaria que fosse chamada a tabela na qual ele faz a consulta através de prepared… entendeu?
SELECT * FROM TABELA WHERE ? LIKE ?
Seria algo como
SELECT * FROM TABELA WHERE NOME (pego num switch) LIKE %jose% (pego em um getAtributo)
Nao vai funcionar da maneira que voce quer. O ? tera seu valor real colocado entre ’ ( aspas/apostrofo ), o que daria erro no sql.
O LIKE voce ainda consegue, bastando que passe como valor o % tambem:
String sql = "SELECT campo FROM tabela WHERE campo LIKE ?";
...
p.setString(1, "%"+ variavelComOValor +"%");
Rafael
Nao vai funcionar da maneira que voce quer. O ? tera seu valor real colocado entre ’ ( aspas/apostrofo ), o que daria erro no sql.
O LIKE voce ainda consegue, bastando que passe como valor o % tambem:String sql = "SELECT campo FROM tabela WHERE campo LIKE ?"; ... p.setString(1, "%"+ variavelComOValor +"%");Rafael
Certo, então a melhor maneira seria fazer um switch que pega o campo e faiz uma prepareStatement pra cada tipo de campo?
Voce pode montar o WHERE dinamicamente, com concatenacao de Strings
Rafael
De uma olhada no pattern Builder, ao inves de simplesmente usar concatenacao. Fica beeem mais facil de manter 
cv, o search do forum eu to fazendo assim:
http://www.jforum.net/teste/SearchVH.java
O que acha? a ideia era tornar a criacao de sqls dinamicamente mais simples ( mas nao que atualmente esteja mto simples
)
Rafael
Ficou legal, mas um builder era mais o caso - repare que vc deixou no mesmo lugar a “concatenacao” e a “api” de criterios…com um Builder, pelo menos a concatenacao fica separada da logica da coisa. 