bom dia pessoal, é o seguinte, tenho uma consulta que vai se repetir varias vezes entao eu fiz assim
ResultSetrs=null;PreparedStatementpstmt=null;List<VOGrupoOrcamentario>retorno=newArrayList<VOGrupoOrcamentario>();StringsqlQuery="SELECT * FROM GRUPOORCAMENTARIO WHERE ? = ?";pstmt=con.prepareStatement(sqlQuery);pstmt.setString(1,campo);pstmt.setString(2,item);rs=pstmt.executeQuery();
sendo que essas 2 ? na minha query um é o campo pelo qual vou psquisar e a outra é o valor, o problema é:
como eu to add um String no pstmt entao a query fica assim SELECT * FROM GRUPOORCAMENTARIO WHERE ‘campo’ = ‘valor’
e ae nao da em nada…
alguma ajuda?
vou ter que repetir esse metodo mudando apenas o campo?
StringsqlQuery="SELECT * FROM GRUPOORCAMENTARIO WHERE "+campo+" = ?";
Tiburcio_Mancha
naum, coloca o nome do campo que esta no banco:
assim:
String sqlQuery = “SELECT * FROM GRUPOORCAMENTARIO WHERE nome_campo_no_banco = ?”;
Tiburcio_Mancha
naum, coloca o nome do campo que esta no banco:
assim:
String sqlQuery = “SELECT * FROM GRUPOORCAMENTARIO WHERE nome_campo_no_banco = ?”;
abelgomes
pois é mas ai eu tenho 15 consultas para fazer que vai ser a mesma coisa
SELECT * FROM GRUPOORCAMENTARIO WHERE “+campo+” = ?";
mas so muda o nome do campo… nao vou fazer 15 metodos pra fazer isso… vou dararrajar uma maneira e posto aqui…
jessetsilva
e se vc fizesse assim ?
publicoqVcQuerRetornarsuaFuncao(StringnomeDocampo){ResultSetrs=null;PreparedStatementpstmt=null;List<VOGrupoOrcamentario>retorno=newArrayList<VOGrupoOrcamentario>();StringsqlQuery="SELECT * FROM GRUPOORCAMENTARIO WHERE "+nomeDocampo+" = ?";pstmt=con.prepareStatement(sqlQuery);pstmt.setString(2,item);rs=pstmt.executeQuery();// aqui vc faz o resto pra retorno ou coisa ssim// caso seja uma lista, vc pdoe fazer um for correndo a lista e colocando o que vc quer da lisat, e adicionando no select}
Tiburcio_Mancha
desculpa, agora entendi...
o problema esta nas concatenações e uso das aspas, tenta assim:
[code]"SELECT * FROM GRUPOORCAMENTARIO WHERE '"+nomeDocampo +"' = ?";
primeiro abre aspas simples e depois a dupla...
Tiburcio_Mancha
Tiburcio_Mancha:
desculpa, agora entendi…
o problema esta nas concatenações e uso das aspas, tenta assim:
"SELECT * FROM GRUPOORCAMENTARIO WHERE '"+nomeDocampo+"' = ?";
primeiro abre aspas simples e depois a dupla…
rpb.cold
Amigo,
entendo que a unica forma de fazer é primeiro concatenar o campo na string e depois vc adicionar o valor pelo setString.
Exemplo:
ResultSet rs = null;
PreparedStatement pstmt = null;
List<VOGrupoOrcamentario> retorno = new ArrayList<VOGrupoOrcamentario>();
StringBuffer sql = new StringBuffer();
sql.append("SELECT * FROM GRUPOORCAMENTARIO WHERE ");
sql.append(campoDaTabela);
sql.append(" = ?");
pstmt = con.prepareStatement(sql.toString());
pstmt.setString(1, valueSearch);
try{
rs = pstmt.executeQuery();
while(rs.next){
//iteracao para popular o list
}
}catch(Exception e){
e.printStackTrace();
}
att,
Renan
abelgomes
é isso mesmo… :(…pensei que dava pra colocar o paramentro do pstmt…mas é isso mesmo Renan…