Resultado query na interface grafica

3 respostas
A

Boa noite, esse é meu primeiro post e segue uma dúvida: como mostro o resultado da query abaixo???
Estou dando os meus primeiros passos em Java, antes só programava em PHP. Fiz atá ai sozinho, mas não consigo exibir o resultado na aplicação gráfica.
Valeu!!! Agradeço mesmo.

import java.awt.<em>;

import java.awt.event.</em>;

import javax.swing.<em>;

import java.lang.</em>;

import java.net.URL;

import java.sql.<em>;

import <a href="http://java.io">java.io</a>.</em>;

public class BuscaNome extends Frame implements ActionListener {

JLabel l1;
JTextField t1;
JButton b1;	

public BuscaNome() {
	
	setLayout (new GridLayout(10,5));
	
	l1 = new JLabel("Nome do cliente: ");
	t1 = new JTextField(50);
	b1 = new JButton("Buscar");
	
	b1.addActionListener(this);
	
	add(l1);
	add(t1);
	add(b1);    	
}

public void actionPerformed(ActionEvent event) {
	janela ap = new janela();
	ap.sair();				
}

public static void main(String args[]) throws IOException{
	
		BuscaNome janela = new BuscaNome();
		janela.setTitle("busca de cliente");
		janela.pack();
		janela.show();    		
	}
	
	class janela{
		janela(){    			
		}
		
		public void sair(){
			try{
				//conexão com o banco de dados
				String url = "jdbc:mysql://localhost:3306/banco";
		        String user = "root";
		        String password = "root";
		        Connection conexao = DriverManager.getConnection(url, user, password);
		        Class.forName("com.mysql.jdbc.Driver");
		        //inicia a conexão
		        Statement st = conexao.createStatement();
		        
		        //SQL			       
		        
		        String sql = "SELECT * FROM teste WHERE nome LIKE '"+ t1.getText() +"' ";
				Statement stat = conexao.createStatement();
				ResultSet set = stat.executeQuery(sql);
				while(set.next()){
					String titulo = set.getString("NomeAg");
					System.out.println(titulo);
		        
		        
		        
		        st.close();
		        conexao.close();			        
			}
		    catch (Exception e) {
		       e.printStackTrace();
		       return;
	        }
	        System.exit(0);
		}
	}

}

e a tabela para teste:


– Estrutura da tabela teste

CREATE TABLE IF NOT EXISTS teste (
id int(10) NOT NULL auto_increment,
nome varchar(150) default NULL,
Telefone varchar(10) default NULL,
Cidade varchar(10) default NULL,
Idade varchar(10) default NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

3 Respostas

di0

Boa noite,

como se pode observar no seu código ele imprime em linha de comando o resultado.

while(set.next()){ String titulo = set.getString("NomeAg"); System.out.println(titulo); //imprime a String na saída padrão }

insira um novo JLabel em sua janela e acrescente a linha 3 no seu código para definir o texto.

String titulo = set.getString("NomeAg");
System.out.println(titulo);
l2.setText(titulo); //define resultado da query como texto do JLabel
A

Cara, fucionou. Valeu mesmo!!!

A única coisa que não estou conseguindo é fazer aparecer mais de um resultado. Por exemplo: Se tenho 3 João no meu banco ele exibe apenas o primeiro.

Abraço.

di0

Boa tarde Ailton, você pode começar estudando outros componentes para visualizar os seus resultados. Como nós inserimos apenas um JLabel ficamos limitados a um resultado.

Repare que o código onde altera o texto do JLabel está dentro de um laço while. Enquanto o ResultSet tiver resultados ele vai alterando o JLabel mas sempre sobrescrevendo a ultima alteração.

Criado 27 de maio de 2010
Ultima resposta 28 de mai. de 2010
Respostas 3
Participantes 2