Galera mais uma vez venho pedir ajuda a vcs criei um meto de ediçãocliente e infeliz não roda de jeito nenhum sempre q altero alguma
coisa ele dá um erro diferente agradeço se vcs me ajudarem.
acho que o problema esteja nesse executequery.
publicClienteseditarCliente(Stringcpf)throwsSQLException{
con=conect.conectar();Stringsql="update cliente set nome=?, email=?, estado=?, cidade=?, bairro=?, rua=?, cep=?, numero=? where cpf=?";smt=con.prepareStatement(sql);Clientesc=newClientes();smt.setString(1,cpf);rs=smt.executeQuery();while(rs.next()){
c.setNome(rs.getString("nome"));c.setCpf(rs.getString("cpf"));c.setEmail(rs.getString("email"));c.setEstado(rs.getString("estado"));c.setCidade(rs.getString("cidade"));c.setBairro(rs.getString("bairro"));c.setRua(rs.getString("rua"));c.setCep(rs.getString("cep"));c.setNumero(rs.getInt("numero"));}
smt.execute();smt.close();con.close();returnc;}
você tem 9 parâmetros (pontos de interrogação) no seu PreparedStatment
Stringsql="update cliente set nome=?, email=?, estado=?, cidade=?, bairro=?, rua=?, cep=?, numero=? where cpf=?";
mas atribui apenas 1
smt.setString(1,cpf);
rs=smt.executeQuery();
cadê os outros 8?
M
magraum
alem disso voce instanciou o objeto mas ficou por isso…
Clientes c = new Clientes();
smt.setString(1,[color=red]c.get[/color]Cpf);
kicolobo
Outro problema é que você está enviando uma ação de edição para o banco de dados e a tratando como uma consulta.
o método next só deve ser enviado para objetos ResultSet quando executamos uma consulta no BD, não quando estamos inserindo, editando ou excluindo registros.
wbdsjunior
magraum:
alem disso voce instanciou o objeto mas ficou por isso…
o cpf foi recebido por parâmetro no método editarCliente(String cpf).
malz, agora fui ver :oops:
kicolobo
getAdicted:
kicolobo, por gentileza,
JDBC ou Hibernate?
JDBC
M
magraum
vinkello:
Meu veih tá pau aqui alterei todinho e continua dando pau agora diz que to passando um valor nulo pra
cola teu codigo onde voce ta setando os atributos ao objeto, o problema pode ser no teu objeto.setNome em outra classe
getAdicted
getAdicted wrote:
kicolobo, por gentileza,
JDBC ou Hibernate?
JDBC
Desculpa encher o saco, cara!
Por que? Sempre gostei do hibernate, mas dependendo da situação vou voltar a utilizar o JDBC.
Obrigado pela atenção!
[]'s
neno
Muda o parametro do seu metodo manolo, ta dando nulo porque vc esta instanciando a classe cliente sem nada...
publicvoideditarCliente(Clientec)throwsSQLException{//muda pra ficar assim con=conect.conectar();Stringsql="update cliente set nome=?, cpf=?, email=?, estado=?, cidade=?, bairro=?, rua=?, cep=?, numero=? where cpf=?";smt=con.prepareStatement(sql);// Clientes c = new Clientes(); //tira essa linhasmt.setString(10,cpf);smt.setString(1,c.getNome());smt.setString(2,c.getCpf());smt.setString(3,c.getEmail());smt.setString(4,c.getEstado());smt.setString(5,c.getCidade());smt.setString(6,c.getBairro());smt.setString(7,c.getRua());smt.setString(8,c.getCep());smt.setInt(9,c.getNumero());smt.execute();smt.close();con.close();}
so não esquece de quando for chamar o medodo editar, passar o objeto c de Cliente com os atributos nome, cpf etc preenchidos!
V
vinkello
Pow vlw neno consegui resolver o problema de boa msm abração… Até mais dúvidas galera…flw…