Consultar no banco

21 respostas
V

Boa tarde Pessoal,

tenho uma duvida, estou aprendendo java e resolvi fazer um aplicativo pequeno com db, pois bem, gravar no db eu já consigo, o que eu quero é retornar agora um pesquisa, mas quero que retorne em um JTextField, já que estou fazendo em swing.

Obrigado!

21 Respostas

drsmachado

Ok, tudo bem.

E o problema, qual é?
Qual a tua dificuldade?
Como está fazendo a consulta?
Como resgata os dados da consulta e os leva à tela?

Obrigado

yoshikichi

No proprio Guj tem um artigo de jdbc.
http://www.guj.com.br/articles/7
É só você concatenar seu resultado no jtextfield.

felipehts

Tem dúvida de como “pegar” o resultado ou como “setar” para o JTextfield ???

Alan_Cristensen

ola , tenho varios projetos utilizando banco de dados , se puder me add no msn que acho que posso te ajudar quando estiver online , porque cobol é trash!!

V

Pois olha, minha duvida é fazer a consulta e jogar na JTextField, rsrsrsrsrs

drsmachado

Bem, dá uma pesquisada por “SELECT COM JAVA” nestes sites aqui www.google.com.br e www.guj.com.br que talvez te ajude. Pode pesquisar também “JtextField.setText” vai ajudar bastante.
Existem algumas apostilas que podem te ajudar, disponíveis na net mesmo, inclusive a da caelum.

V

e mais um dúvida, o código para consultar vai na classe DAO?

R

Depende de como está desenvolvendo sua aplicação. Dá uma pesquisada em design patterns que você poderá escolher qual o melhor modelo para sua aplicação!
O Hibernate substitui seu código SQL para um totalmente orientado a Objeto, então se no seu DAO você faria suas expressões SQL substitui pelo Hibernate Criteria ou HQL!

drsmachado

rfogo, o nosso camarada não sabe ainda fazer um select na mão e passar isso para um jtextfield, acha mesmo viável ele tentar hibernate?

V

rfodo, o drsmachado tem razão,não é que eu estou pensando pequeno não querendo evoluir, mas eu acho que eu tenho que pegar o negocio na unha mesmo, para pelo menos depois saber como que funciona, se é que eu fui claro, :s

eu já fiz aquelas apostilas da caelum e meio que estou copiando um projeto chamado jdbc, ai fiz tipo uma lista para retorna a pesquisa, segue

public List<Cliente> getList(){
		
		try{
			List<Cliente> cliente = new ArrayList<Cliente>();
			java.sql.PreparedStatement stmt = this.connection.prepareStatement("select * from cliente");
			ResultSet rs = stmt.executeQuery();
			
			while(rs.next()){
				
				Cliente cli = new Cliente();
				
				cli.setNome(rs.getString("nome"));
				cli.setSobreNome(rs.getString("sobreNome"));
				cli.setTelefone(rs.getString("telefone"));
				cli.setCidade(rs.getString("cidade"));
				cli.setEndereco(rs.getString("endereco"));
				cli.setEmail(rs.getString("email"));
				
				cliente.add(cli);				
			}
			rs.close();
			stmt.close();
			return cliente;
			
		
		}catch (SQLException e) {
			throw new RuntimeException(e);
		}

Se estiver certo blz, o ruim vai ser se agora, que é imprmir ela no seu devido lugar, rsrsrsrsrsrs

R

Realmente, não me atentei para o começo da conversa.

Seria interessante mesmo até para você entender o hibernate que iniciasse seu projeto com oas strings sql mesmo, mas ainda fica a dica de já no começo utilizar os design patterns na sua aplicação que você poderá utilizar o hibernate posteriormente sem alterar muita coisa.

Nas suas pesquisa procure digitar Java + o banco que você vai utilizar na aplicação , assim você acha alguns tutorias bem explicativos que vai desde a classe de conexão até setar esses valores nos seus frames!

drsmachado

Beleza, aí sim estamos andando de forma adequada.
Você já tem um ponto de partida, já faz a consulta no banco.
O próximo passo é a chamada à este método, que poderá ser feito em um actionListener qualquer (ao carregar a tela ou clicar num botão da mesma).
Você está retornando uma List<?> de Cliente.
Na tela, o ideal é ter uma List e fazer a chamada assim

//instancia o objeto DAO
List<Cliente> listaCliente = dao.getList();

Então, faça a leitura dos objetos da lista, retire o cliente desejado e, a partir daí, com o atributo adequado, preencha o textfield com

jtextField.setText(cliente.getReferenteAoAtributo());
V

Aí cara, vlw, era isso mesmo que eu queria, segue o codigo, agora vou implementando

@Override
								public void actionPerformed(ActionEvent e) {
								
									ClienteDAO dao = new ClienteDAO();
									List<Cliente> cliente = dao.getList();
									
									for(Cliente cli: cliente){
										
										nomePesquisaTextField.setText(cli.getNome());
										
									}
									System.out.println("Pesquisar");
									
								}
							});

Abração e obrigado mesmo, e vou começar a fazer algo sobre hibernate.

V

Pois bem, outra duvida agora, como que eu posso fazer para quando eu digitar o nome do cliente, apareça a descrição do produto que ele tem?
sendo que esses produtos já estão salvas no banco.
?

OBRIGADO!

drsmachado

Crie uma outra função, semelhante à anterior, que receba o parâmetro cliente (pode ser nome ou ID).
Então, faça a consulta na tabela produto, retornando o mesmo.

V

?

V

Desculpe, mas não entendi, poderias mostar em uma prática?

V

help?

ViniGodoy

Você não tem uma tabela como ProdutoCliente, ou venda, com a chave do cliente e do produto que ele comprou?

Nesse caso, faça um select como:

SELECT p.Nome FROM Produto p INNER JOIN ProdutoCliente pc ON p.idProduto = pc.idProduto INNER JOIN Cliente c ON c.idCliente = pc.idCliente WHERE c.Nome LIKE ?

Outra coisa, não deixe a tag [NÃO RESOLVIDO] no título do seu tópico. Apenas sinalize quando ele for resolvido.
Além disso, quando não conseguir fazer algo, tente ser mais específico na sua dúvida. Dizer que “não entendeu e me mostra aí” não deixa claro se sua dúvida é no SQL ou no Java, e parece que vc está pedindo a resolução completa pronta. Lembre-se que não conhecemos seu banco de dados, e as vezes fica difícil para nós sermos mais específicos sem que você também seja.

V

Desculpa!

É o seguinte, eu estou fazendo um aplicativo para mim aprender sobre Swing e JDBC, pois é, que tem algumas abas para adicionar um cliente e um serviço e duas outras abas para pesquisar cliente e serviço, nessas abas de pesquisa quero digitar o nome do cliente que já esta salvo no banco e que ele me retorne os dados nas textfield, na parte de pesquisar eu já fiz, mas ele está sempre pesquisando o ultimo cliente adicionado no banco, e não aquele que eu digito na textfiel.
E na aba pesquisa serviço, quero digitar o nome do cliente e que ela me retorne os serviços que eu já fiz para ele, em outra textfield.

Não sei se fico bem explicado, espero que podem me ajudar.

Obrigado!

V

Alguma ajuda?

Criado 11 de maio de 2011
Ultima resposta 13 de mai. de 2011
Respostas 21
Participantes 7