Problemas com JDBC ResultSet

2 respostas
V

Pessoal utilizando jdbc eu criei um repositorio cliente e dentro desse repositorio defini os metodos adicionar, remover, consultar e editar
entretanto no meu metodo de consulta mas precisamente na linha while (rs.next()) têm ocorrido o erro nullpointexception e não conseguir
resolver segue o meu código.

public Clientes consultarCliente(String cpf) throws SQLException{
		
			con= conect.conectar();
			String sql= "select*from cliente where=?";
			smt= con.prepareStatement(sql);
			Clientes c= new Clientes();
			
			while (rs.next()){
				
				smt.setString(1,cpf);
				
				String nome = rs.getString("nome");
				String cp=rs.getString("cpf");
				String email= rs.getString("email");
				String estado= rs.getString("estado");
				String cidade= rs.getString("cidade");
				String bairro=rs.getString("bairro");
				String rua= rs.getString("rua");
				String cep =rs.getString("cep");
				int numero=rs.getInt("numero");
				
			
				c.setNome(nome);
				c.setCpf(cp);
				c.setEmail(email);
				c.setEstado(estado);
				c.setCidade(cidade);
				c.setBairro(bairro);
				c.setRua(rua);
				c.setCep(cep);
				c.setNumero(numero);
				
				rs=smt.executeQuery();
				
			}
			smt.execute();
			smt.close();
			con.close();
			
			return c;
			
		
	}

2 Respostas

R
vinkello:
Pessoal utilizando jdbc eu criei um repositorio cliente e dentro desse repositorio defini os metodos adicionar, remover, consultar e editar entretanto no meu metodo de consulta mas precisamente na linha while (rs.next()) têm ocorrido o erro nullpointexception e não conseguir resolver segue o meu código.
public Clientes consultarCliente(String cpf) throws SQLException{
		
			con= conect.conectar();
			String sql= "select*from cliente where=?";
			smt= con.prepareStatement(sql);
			Clientes c= new Clientes();
			
			while (rs.next()){
				
				smt.setString(1,cpf);
				
				String nome = rs.getString("nome");
				String cp=rs.getString("cpf");
				String email= rs.getString("email");
				String estado= rs.getString("estado");
				String cidade= rs.getString("cidade");
				String bairro=rs.getString("bairro");
				String rua= rs.getString("rua");
				String cep =rs.getString("cep");
				int numero=rs.getInt("numero");
				
			
				c.setNome(nome);
				c.setCpf(cp);
				c.setEmail(email);
				c.setEstado(estado);
				c.setCidade(cidade);
				c.setBairro(bairro);
				c.setRua(rua);
				c.setCep(cep);
				c.setNumero(numero);
				
				rs=smt.executeQuery();
				
			}
			smt.execute();
			smt.close();
			con.close();
			
			return c;
			
		
	}

Tenta colocar o smt.setString(1,cpf); fora no while e coloca o Cliente c = new Cliente(); dentro do while, senão criará só um objeto cliente e retornará o registro repetido.

E sua consulta sql está errada...seria : "select * from cliente where cpf=?" ,certo?

Faça essas alterações e vê se funciona

R

Ah tá, pelo a maneira que você montou é para retornar apenas umas consulta mesmo, então não precisa colocar a criação do objeto dentro do while.

Dica:

Você não precisa recuperar do banco, armazenar numa variável para depois popular o objeto, você pode fazer isso na mesma linha.

Ex:

c.setNome(rs.getString(“nome”));

Criado 8 de novembro de 2010
Ultima resposta 8 de nov. de 2010
Respostas 2
Participantes 2