estou criando uma aplicação que utiliza banco dados e gostaria de saber como faço para resgatar do banco o valor de um campo específico
por exemplo: o campo razao de uma tabela que contenha diversos dados a respeito de uma empresa
para isso estava tentando utillizar o metodo getString() da classe ResultSet
vou mostrar uma porção do código para que fique mais clara a dúvida:
Statement stm; String sql=“Select * from tb_gecol where cnpj=”+cnpj+"";
ResultSetrs;try{stm=con.createStatement();rs=stm.executeQuery(sql);Stringa=rs.getString(razao);//aqui esta o metodo que eu achava que obteria o valor da coluna razaoSystem.out.println(a);//e aqui eu imprimiria a razao social do cnpj pesquisadostm.close();}catch(SQLExceptionex){ex.printStackTrace();}
se alguém puder ajudar ou indicar pelo menos o nome do metodo adequado eu agradeço
Stringsql="Select razao from tb_gecol where cnpj="+cnpj+"";..Stringa=rs.getString(1);
J
jaireltonPJ
Statementstm;Stringsql="Select * from tb_gecol where cnpj="+cnpj+"";ResultSetrs;try{stm=con.createStatement();rs=stm.executeQuery(sql);if(rs.next()){Stringa=rs.getString("razao");System.out.println(a);}stm.close();}catch(SQLExceptionex){ex.printStackTrace();}
Obs.: prefira usar PreparedStatement no lugar de Statement quando precisar passar parametros para a query.
O
olindaPJ
pq jairelton?
qual a diferença entre as duas??
obrigado pelas respostas
O
olindaPJ
pior q o meu erro era idiota pra caramba!!
esqueci as “” na String q enviava como parametro
J
jaireltonPJ
São basicamente duas diferenças:
1 - Você não precisa formatar o parametro de acordo com o seu banco, isso fica a cargo do driver.
PreparedStatementstm;Stringsql="select * from tb_gecol where cnpj = ?";ResultSetrs;try{stm=con.prepareStatement(sql);stm.setString(1,cnpj);rs=stm.executeQuery();if(rs.next()){Stringa=rs.getString("razao");System.out.println(a);}stm.close();}catch(SQLExceptionex){ex.printStackTrace();}
2 - O sql é compilado pelo banco e fica pronto para receber multiplas execuções (muito importante caso sua aplicação faça varias chamadas para o mesmo SQL).
O
olindaPJ
aa entendi,
valeu pela ajuda!!
O
olindaPJ
puts cara mas assim!!!
estava testando o metodo q vc mostrou para fazer consultas usando PreparedStatement
só q surgiu um problema talvez seja por ser data
PreparedStatement stmt;
ResultSet rs;
String sql="Select * from tb_gecol where pesquisa=? and cobranca>=? and cobranca<=?";
try{
stmt=con.prepareStatement(sql);
stmt.setString(1, pesquisa);
stmt.setDate(2,datainicial);//esta dando erro nessas duas linhas
stmt.setDate(3,datafinal);//o compilador nao consegue encontrar esses dois metodos mas é impossivel pois conferi ate a docu
//mentacao e la estao eles, o q esta havendo??
rs=stmt.executeQuery(sql);
razao=rs.getString(3);
}catch (SQLException ex) {
ex.printStackTrace();
}
aqui abaixo vou postar a maneira q obtive as datas: