Buscar dados no Banco de dados

7 respostas
shenn

Estou com duvida de como faço para conseguir acessar os dados da minha aplicação no postgre, fiz pelo modelo dao... Gostaria de que pelo nome conseguir acessar os dados da pessoa. e se o nome não tiver inserido aparecer uma tela de erro.

public List<Cadastro> retrieve() throws SQLException {   
      String comando ="";   
      try {   
         Statement stmt = conexao.createStatement();   
         comando = "select * from cadastro";   
         ResultSet rs = stmt.executeQuery(comando);   
         List <Cadastro> listaDeCadastros = new ArrayList<Cadastro>();   
         while (rs.next()) {   
               Cadastro cadastro = new Cadastro ();   
               cadastro.setNome (rs.getString(1));   
               cadastro.setApelido (rs.getString(2));   
               cadastro.setEmail (rs.getString(3));   
               cadastro.setCpf(rs.getString(4));   
               cadastro.setNasc(rs.getString (5));   
               cadastro.setTel(rs.getString(6));   
                              
               listaDeCadastros.add (cadastro);   
         }   
            
         stmt.close();   
         conexao.close();   
         return listaDeCadastros;   
            
      } catch (Exception e) {   
         System.out.println("Erro no Cadastro.List "+ e);   
         return null;   
      }  
public List<Cadastro> retrieve() throws SQLException {
      String comando ="";
      try {
         Statement stmt = conexao.createStatement();
         comando = "select * from cadastro";
         ResultSet rs = stmt.executeQuery(comando);
         List <Cadastro> listaDeCadastros = new ArrayList<Cadastro>();
         while (rs.next()) {
               Cadastro cadastro = new Cadastro ();
               cadastro.setNome (rs.getString(1));
               cadastro.setApelido (rs.getString(2));
               cadastro.setEmail (rs.getString(3));
               cadastro.setCpf(rs.getString(4));
               cadastro.setNasc(rs.getString (5));
               cadastro.setTel(rs.getString(6));
                           
               listaDeCadastros.add (cadastro);
         }
         
         stmt.close();
         conexao.close();
         return listaDeCadastros;
         
      } catch (Exception e) {
         System.out.println("Erro no Cadastro.List "+ e);
         return null;
      }
tipo quero criar uma outra tela para o usuario digitar o nome, psquisar no banco de dados e informar os dados da pessoa... Desde ja Agradeço!

7 Respostas

drsmachado

O tópico foi postado no fórum errado, a dúvida não se refere à java avançado, mas à persistência.
Sugiro que você pesquise sobre a cláusula WHERE.

L

veja se entende, faço dessa forma:

public ClientTO consultar(String nome){


		ClientTO clientTO = new ClientTO();

try { 

			ResultSet rs = null;   

			con = DAOConexao.getConn(); 


			String sql = " Select * from tb_Clientes where NOMECLI = '" +nome + "'";


			pstm = con.prepareStatement(sql);
			rs = pstm.executeQuery(); 

			if(rs.next()){
				//rs.last();   
				clientTO.setCodigoImprCliente(rs.getString("CodigoImprCliente"));
				clientTO.setNome(rs.getString("NOMECLI"));			
				clientTO.setEndereco(rs.getString("ENDERECOCLI"));
				clientTO.setTel(rs.getString("TELEFONECLI"));
				
			}
			else{
				new Mensagem(null, "Aviso", "Item não localizado", Mensagem.MSG_BOTAO_OK, Mensagem.MSG_ICONE_ERRO);
			}

		}catch(Exception e){
			System.out.println(e.toString());
		}finally{


			try{
				//pstm.close(); 
				//con.close();
			}catch(Exception e){

			}
		}
		return clientTO;
	}
GuilhermeBotossi

Ja responderam, mais pode ser que pode ser util:

Quanto ao select , em especifico pro Postgre:
http://www.postgresql.org/docs/8.1/static/sql-select.html

E outra que pode ser legal, quando não se trata de uma busca exata do Postgre tbm
http://www.postgresql.org/docs/8.3/interactive/functions-matching.html

shenn

sou meio novo em java e nao entendi direito, isso que o lokit"s respondeu ele vai achar os dados mas vai mandar esses dados para aparecer na tela?

GuilhermeBotossi

shenn:
sou meio novo em java e nao entendi direito, isso que o lokit"s respondeu ele vai achar os dados mas vai mandar esses dados para aparecer na tela?

No post do lokit"s, ele te retorna os dados em formato de objeto(não sei o tipo do objeto), pra exibir, seria o caso de pegar o retorno do metodo e verificar se é valido, caso seja, vc exibe os dado e caso seja uma coleção de dados, usa o for(objeto obj: lista)

L

veja se entenda agora!

criei outra classe

package controller;

import Model.ClientDAO;
import TO.ClientTO;


public class CadastroClientes {


	private ClientDAO dao = new ClientDAO();

//	salvar
	
	public boolean salvar(ClientTO to) {
		//quando for salvo 
		
		if (dao.consultaCLiente(to.getNome())){
			
		//	update		
			return dao.alterar(to);
		}else{
			//insert
			return dao.inserir(to);							
		}		
	}
	
	//update

	public ClientTO consultar(String nome){

 		return dao.consultar(nome);

	}

	//delete

	public boolean delete(String cod) {

		return dao.delete(cod);
	}

}

vê se deu pra entender o que esta ocorrendo nesse caso , mas eu não postei o resto do meu DAO, apenas a parte que vc precisava , pois o resto do codigo era delete update

shenn

entendi, mas como eu chamo ios resultados para mostrar na tela?

Criado 3 de junho de 2011
Ultima resposta 3 de jun. de 2011
Respostas 7
Participantes 4