Seguinte. Tenho uma classe para fazer a conexão com o BD. Na inserção de valores está tudo ok.
Mas na busca pelos dados estou “patinando”. Pelos testes, nem entra no while.
Stringsql="SELECT * FROM tbprodutos WHERE codigo... try{ ConectaClass bd = new ConectaClass(); ConectaClass.consulta(sql); while(res.next()){ }//A classe ConectaClass tem a consulta: public static ResultSet consulta(String query) { try { res = stm.executeQuery(query); } catch (SQLException e) { /** Não está conseguindo conectar ao banco */ JOptionPane.showMessageDialog(null, e, "ErroaoConectar!!!",JOptionPane.ERROR_MESSAGE); } return res; }
cara, esse codigo esta cheirando POG. prq nao coloca o codigo dentro do mesmo metodo? alem de ficar mais simples, facilita a manutenca e o entendimento.
Para facilitar a compreensão coloque seu código dentro da tag [code].
Tks.
F
FrancoRS
Consigo conexão agora, mas ele não entra no primeiro if. Tenho uma tbprodutos e dentro dela tem a coluna "codigo" INT. Através do código digitado, gostaria de buscar a descrição do produto. Mas ele não entra no if. Já tentei também no if colocar res.getString("codigo"), mas nada. Aceito sugestões. Obrigado!
Stringsql="SELECT * FROM tbprodutos;";System.out.println(sql);try{ResultSetres=stm.executeQuery(sql);booleanteste=true;while(res.next()){if(res.getString(1).equals(jTextFieldBuscaCodigo.getText())){teste=false;StringNome=res.getString("descricao");jTextFieldExibeDescricao.setText(Nome);JOptionPane.showMessageDialog(null,"Código encontrado!");}else{teste=false;System.out.println("Não achou!");}}}catch(SQLExceptions){System.out.println("SQL Erro: "+s.toString());}
mauricioadl
segue o exemplo de como fazer uma consulta por codigo:
private Contato consultaPorCodigo(int pCodigo){
Connection con = null;
PreparedStatement ps = null;
try {
con = ConnectionFactory.getConnection();
ps = con.prepareStatement("select * from contatos where codigo = ?");
ps.setInt(1, pCodigo);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
Contato c = new Contato();
c.setCodigo(cont++);
c.setNome(rs.getString("nome"));
c.setAssunto(rs.getString("assunto"));
c.setEmail(rs.getString("email"));
c.setMensagem(rs.getString("mensagem"));
c.setTelefone(rs.getString("telefone"));
return c;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
ConnectionFactory.close(ps, con);
}
return null;
}
no caso do exemplo eu consulto um Contato na tabela contatos.
F
FrancoRS
mauricioadl:
segue o exemplo de como fazer uma consulta por codigo:
private Contato consultaPorCodigo(int pCodigo){
Connection con = null;
PreparedStatement ps = null;
try {
con = ConnectionFactory.getConnection();
ps = con.prepareStatement("select * from contatos where codigo = ?");
ps.setInt(1, pCodigo);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
Contato c = new Contato();
c.setCodigo(cont++);
c.setNome(rs.getString("nome"));
c.setAssunto(rs.getString("assunto"));
c.setEmail(rs.getString("email"));
c.setMensagem(rs.getString("mensagem"));
c.setTelefone(rs.getString("telefone"));
return c;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
ConnectionFactory.close(ps, con);
}
return null;
}
no caso do exemplo eu consulto um Contato na tabela contatos.
Olá Mauricio!
To aprendendo, mas...
Na minha pesquisa ele retorna somente 1 codigo exibindo 1 descricao e 1 valor.
F
FrancoRS
Olá pessoal!
Consegui resolver a busca no BD!
Segue o codigo que fiz para buscar os dados. Deixando claro que você necessita ter o codigo de conexão com o BD ok!