Busca de dados no Banco de Dados [RESOLVIDO]

8 respostas
F

Olá Pessoal!

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.

String sql = "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, "Erro ao Conectar ! ! !",JOptionPane.ERROR_MESSAGE);
        }
        return res;
    }

8 Respostas

mauricioadl

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.

F

Olá Mauricio!

Farei o solicitado. Vamo v o que dá.

Wls!

botocudo_killer

AQUI http://noticias.bol.uol.com.br/entretenimento/2012/04/16/mulher-com-duas-vaginas-diz-na-tv-que-e-feliz-assim.jhtm

CyberX

Para facilitar a compreensão coloque seu código dentro da tag [code].

Tks.

F
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!
String sql = "SELECT * FROM tbprodutos;"; 
        System.out.println(sql);
        try{
            ResultSet res = stm.executeQuery(sql);
            boolean teste = true;

            while (res.next()){
                if(res.getString(1).equals(jTextFieldBuscaCodigo.getText())){
                    teste = false;
                    String Nome = res.getString("descricao");
                    jTextFieldExibeDescricao.setText(Nome);
                    JOptionPane.showMessageDialog(null,"Código encontrado!");
                
                } else {
                    teste = false;
                    System.out.println("Não achou!");

                }
            }
      }catch(SQLException s){
                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
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

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!

PreparedStatement ps = null;

        try {

            ps = con.prepareStatement("select * from tbprodutos where codigo = "+jTextFieldBuscaCodigo.getText()+";");
            ResultSet rs = ps.executeQuery();
            String descreve = "";
            String valor = "";

           while (rs.next()) {
              descreve= rs.getString("descricao");
              valor = rs.getString("valor");
              jTextFieldExibeDescricao.setText(descreve);
              jTextFieldExibeValor.setText(valor);
            }

             }catch(SQLException s){
                System.out.println("SQL Erro: "+s.toString());

        }

    }
Criado 16 de abril de 2012
Ultima resposta 25 de abr. de 2012
Respostas 8
Participantes 4