[RESOLVIDO]ResultSet para um Cliente!

8 respostas
darksteel3000

Ola galera, tenho de fazer um metodo de busca para pegar com o resultset um parametro q é um cliente para passar como parametro na fachada, como faço, olhem o codigo:

public ContaAbstrata procurar(String num) throws ContaInexistenteException {
                Conta conta = null;
                ResultSet rs = null;
                String sql = "select * from conta c where c.cpf = '"+num+"'";
                JOptionPane.showMessageDialog(null, sql);
		try {
                        Statement stmt = DbConection.conecta().createStatement();
			rs = stmt.executeQuery(sql);

			if (rs.next()) {
                            Cliente cliente;
				conta = new Conta(rs.getString("numero"), rs.getDouble("saldo"),
								 [b] rs.getObject(cliente.getCpf())[/b]);
			}
		} catch (SQLException e) {
			throw new RuntimeException(e.getMessage());
		} finally {

		}
        return conta;
    }

8 Respostas

V

Voce esta com Cliente null

if (rs.next()) {
           Cliente cliente; //esta nulo  
           conta = new Conta(rs.getString("numero"), rs.getDouble("saldo"), rs.getObject(cliente.getCpf())); //esta linha esta errada
           //o resultset nao retorna um objeto cliente 
        }

se o construtor exige um Cliente

if (rs.next()) {
           Cliente cliente = new Cliente();
           cliente.setCpf(rs.getString("cpf"));  
           conta = new Conta(rs.getString("numero"), rs.getDouble("saldo"), cliente);
      }
H

Ola darksteel3000,

Tenta assim:

String sql = "select * from conta c where c.cpf = '?'"
        List<Cliente> listaClientes = new ArrayList<Cliente>() ;
        try {
            PreparedStatement ps = conexao.prepareStatement(sql); // conexao  é uma Connection
            ps.setInt(1, num);
            ResultSet rs = ps.executeQuery();

             while (rs.next()) {
                Cliente cliente = new Cliente();
                cliente.setId(rs.getInt("id"));
                /* outros campos */
                listaClientes .add(produto);
            }
       }
//etc..
darksteel3000
Olá galera tanto de um jeito como de outro o repositorio aceitou. o problema agora e na tela na hora de chamar o metodo de busca, vejam so:
String numero = tf_numero.getText(); //campo do meu jframe referente ao numero da conta
        ContaAbstrata conta = null;
        try{
            conta = fachada.procurarConta(numero); // metodo para busca da conta

            if(conta == null){
                JOptionPane.showMessageDialog(null, &quot;Preencha o campo de numero&quot;);
            }else{
                preencherCamposTela(conta); // metodo parapreencimento dos campos
            }

        }catch(ContaInexistenteException e){
            JOptionPane.showMessageDialog(null, e.getMessage());
        }

Sendo q toda vez q tento executar, entra no if() --> "Preencha o campo de numero".

E agora? Ajudem please heh !!!

darksteel3000

Ola amigos, consegui ajeitar, nem eu acredito q cometi esse erro, pq eu sempre to setando a conta como nula, em vez de colocar o resultado do campo. Mais vlw aew a vcs q me ajudaram,

Abração !!!

H

Que bom que tudo deu certo!

Só não se esqueça de colocar o post como [Resolvido] e se possivel poste o código que funcionou, assim vc contribui para com a comunidade. :slight_smile:

darksteel3000
Resolvido, olha ai o codigo, abração !!!
public Conta procurar(String num) throws ContaInexistenteException {
                Conta conta = null;
                ResultSet rs = null;
                TipoCliente tipo = null;
                String sql = "select * from conta c where c.numero = '"+num+"'";
                JOptionPane.showMessageDialog(null, sql);
		try {
                        Statement stmt = DbConection.conecta().createStatement();
			rs = stmt.executeQuery(sql);

			if (rs.next()) {
                            Cliente cliente = new Cliente();
                            cliente.setCpf(rs.getString("cpf"));
                            conta = new Conta(rs.getString("numero"), rs.getDouble("saldo"), cliente);
			}
		} catch (SQLException e) {
			throw new RuntimeException(e.getMessage());
		} finally {

		}
   return conta;
    }
darksteel3000

Aiaiai, sou nuuuuub mermo, rapa, como se coloca [RESOLVIDO] no topico?

H

kkkk,
É só editar o primeiro Post, ai no Assunto vc coloca na frente [RESOLVIDO] e envia.

Criado 28 de janeiro de 2011
Ultima resposta 29 de jan. de 2011
Respostas 8
Participantes 3