Não aparece o resultado de busca

Olá, pessoal!

tentamos várias vezes que não funcionou aparecer a print do resultado de busca do que eu queria (como “select” e “Where”), veja os comandos em baixo.

Esse comando que digita para buscar os informações selecionada.

private JComponent getAreaBuscar(){
		
		JPanel jpa = new JPanel();
		jpa.setLayout(null);
		
		JLabel lbl = new JLabel("Código de Busca:");
		lbl.setBounds(2,10,100,20);
		
		texbusca = new JTextField();
		texbusca.setBounds(110,10, 100,20);
		
		JButton jb = new JButton(new ImageIcon(getClass().getClassLoader().getResource("lupinha2.jpg")));
		jb.setBounds(215,5,25,25);
		jb.setToolTipText("Buscar o código");
		jb.setActionCommand("busc");
		jb.addActionListener(buscarAgendaListener);
		jb.setName("jb");
		
		jpa.add(jb);
		jpa.add(lbl);
		jpa.add(texbusca);
		
		return jpa;
		
		
	}

Quando o botão clicar e vem chamar o metodo para ação para chamar outro metodo “buscaDados()”

class buscarAgendaListener implements ActionListener{
		public void actionPerformed(ActionEvent arg0) {
			
			if(arg0.getActionCommand().equals("busc")){
				System.out.println("clicou a busca");
				try {
					buscaDados();
				} catch (BancoException e) {
					
					e.printStackTrace();
				}
			}
		}
	}

esse é buscar aonde que queria ver informações. digitar pelo código do cliente. e não apareceu a tela. mas a programa diz que não está nenhum erro ( como aparece linha vermelha).

public void buscaDados() throws BancoException{
		
		try{
			//utilizamos metodos createStatement para conexao "conexaoBanco" para criar Statement.
			Statement stm = conexaoBanco.createStatement();
			System.out.println("acessando o banco");
			// Vamos executar o seguinte comando SQL :
			String SQL = "Select idcliente, nome, sexo, datanasc,cpf,end,numend,comp,estadocivil " +
					"FROM cliente where cliente.idcliente ="+texbusca.getText();
			
			
			// Definido o Statement, executamos a query no banco de dados
			ResultSet rs = (ResultSet) stm.executeQuery(SQL);
			
			 // O método next() informa se houve resultados e posiciona o cursor do banco  
			 // na próxima linha disponível para recuperação  
			 // Como esperamos várias linhas utilizamos um laço para recuperar os dados  
			while (rs.next()){
			System.out.println(rs.getInt("nome"));	
				// Os métodos getXXX recuperam os dados de acordo com o tipo SQL do dado:
				int cod = rs.getInt("idcliente");
				String name =  rs.getString("nome");
				String sex = rs.getString("sexo");
				String datnasc = rs.getString("datanasc");
				String rescpf = rs.getString("cpf");
				String ender = rs.getString("end");
				int numend = rs.getInt("numend");
				int compl = rs.getInt("comp");
				
				// As variáveis tit, aut e totalFaixas contém os valores retornados   
				// pela query. Vamos imprimí-los
				JOptionPane.showMessageDialog(null,
						"Código: "+cod+
						"\nNome: "+name+
						"\nSexo: "+sex+
						"\nData de Nascimento: "+datnasc+
						"\nCPF: "+rescpf+
						"\nEndereço: "+ender+
						"\nNúmero: "+numend+
						"\nComplementento: "+compl);
			}
		} catch(SQLException e){
			// se houve algum erro, uma exceção é gerada para informar o erro
			e.printStackTrace(); //vejamos que erro foi gerado e quem o gerou
		}
	}

Aguardo pela ajuda… obrigado!!

Nao entendi sua duvida. Voce quer imprimir a clausula SQL usada (select … where …), ou voce quer imprimir os resultados da SQL usada (idcliente, nome, …)?

Se for o primeiro, esta faltando um System.out.println(SQL);
Se for o segundo, parece que voce esta fazendo tudo certo. Se existe algum registro no banco de dados, ele deveria ser impresso. Se nao esta imprimindo, eu diria que nao tem nada no banco :slight_smile:

Tente pegar o SQL gerado, execute ele “na mao” e veja quais sao os dados que vc espera ver na tela.

Outra coisa: evite concatenar textos “nao tratados” em sua SQL. Leia sobre “SQL Injection” para os tipos de problemas que isso causa. E leia sobre “PreparedStatement” sobre como fazer isso da maneira correta :wink: