pessoal, eu tenho uma duvida bem simples:
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+"";
ResultSet rs;
try{
stm=con.createStatement();
rs=stm.executeQuery(sql);
String a=rs.getString(razao);//aqui esta o metodo que eu achava que obteria o valor da coluna razao
System.out.println(a);//e aqui eu imprimiria a razao social do cnpj pesquisado
stm.close();
}
catch (SQLException ex) {
ex.printStackTrace();
}
se alguém puder ajudar ou indicar pelo menos o nome do metodo adequado eu agradeço
String sql="Select razao from tb_gecol where cnpj="+cnpj+"";
..
String a=rs.getString(1);
[code]Statement stm;
String sql = “Select * from tb_gecol where cnpj=”+cnpj+"";
ResultSet rs;
try{
stm = con.createStatement();
rs = stm.executeQuery(sql);
if(rs.next()){
String a = rs.getString(“razao”);
System.out.println(a);
}
stm.close();
}catch (SQLException ex) {
ex.printStackTrace();
}[/code]
Obs.: prefira usar PreparedStatement no lugar de Statement quando precisar passar parametros para a query.
pq jairelton?
qual a diferença entre as duas??
obrigado pelas respostas
pior q o meu erro era idiota pra caramba!!
esqueci as “” na String q enviava como parametro
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.
Ex.:
[code]String sql = “INSERT INTO compras (descricao, valor, quantidade, data) VALUES (?, ?, ?, ?)”);
PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setString(1, “Produto 1”);
stmt.setDouble(2, 258.05);
stmt.setInt(3, 5);
stmt.setDate(4, new java.sql.Date(System.currentTimeMillis());
stmt.executeUpdate();[/code]
No seu exemplo ficaria assim:
[code]PreparedStatement stm;
String sql = “select * from tb_gecol where cnpj = ?”;
ResultSet rs;
try{
stm = con.prepareStatement(sql);
stm.setString(1, cnpj);
rs = stm.executeQuery();
if(rs.next()){
String a = rs.getString(“razao”);
System.out.println(a);
}
stm.close();
}catch (SQLException ex) {
ex.printStackTrace();
}[/code]
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).
aa entendi,
valeu pela ajuda!!
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
[code]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();
}[/code]
aqui abaixo vou postar a maneira q obtive as datas:
[code]DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
inicial=txtinicial.getText();
try{
datainicial = df.parse(inicial); //todos as variaveis foram devidamente declaradas em outra parte do codigo
}
catch(ParseException ex) {
Logger.getLogger(Cadastro.class.getName()).log(Level.SEVERE, null, ex);
}[/code]
qual sera o problema??
Pelo que parece sua variavel “datainicial” é do tipo java.util.Date e o metodo setDate(), recebe um java.sql.Date.
Faça assim:
stmt.setDate(2, new java.sql.Date(datainicial.getTime()));
stmt.setDate(3, new java.sql.Date(datafinal.getTime()));
Documentação:
http://java.sun.com/javase/6/docs/api/java/sql/PreparedStatement.html#setDate(int,%20java.sql.Date)
http://java.sun.com/javase/6/docs/api/java/sql/Date.html
http://java.sun.com/javase/6/docs/api/java/util/Date.html