Erro no update

14 respostas
M

Pessoal alguem pode me ajudar no update, esta retornando erro, estou utilizando mysql, o erro que apare é esse: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(endereco = 'brasil',funcao = 'test',login = 'arqui',senha = '1234',cep = '17986' at line 1

o Código é esse
btnalterar.addActionListener(new ActionListener(){
	    	public void actionPerformed(ActionEvent evt) {                               
		       try {   
		           Class.forName("com.mysql.jdbc.Driver");   
		           Connection cn;   
		           cn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/locadora", "root", "123" );   
		           Statement st = cn.createStatement();    
		  
		           st.executeUpdate("UPDATE funcionario SET" +
		           "(endereco = '"+txtrua.getText()+"',funcao = '"+txtfuncao.getText()+"',login = '"+txtlogin.getText()+"',senha = '"+txtsenha.getText()+"',cep = '"+cep.getText()+"',cidade = '"+txtcidade.getText()+"',bairro = '"+txtbairro.getText()+"',tel = '"+cel.getText()+"')");
		           		           
		           st.close();
		           cn.close();
		              
		           }catch (ClassNotFoundException e){   
		               JOptionPane.showMessageDialog(null, "Falha na conexão com o banco de dados.\n" + e.getMessage());   
		                   e.printStackTrace();   
		           }catch (SQLException e){   
		                   e.printStackTrace();   
		       }   
		   } 
		});

14 Respostas

Bravox

a seu sql possui erro de sintaxe retire os “()” que deve resolver

M

não pode e retirar () da erro no código.

Bravox

Da uma olha aqui para ver a sintaxe completa do update

M

A sintaxe esta certa, é alguma coisa no código.

Bravox
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(endereco = 'brasil',funcao = 'test',login = 'arqui',senha = '1234',cep = '17986' at line 1

quem dispara esse tipo exceção é o drive e ai tá dizendo que tem erro sintaxe no sql !!

M

Ai q ta não consigo resolver isso

Bravox

acho que vc não entendeu direito ! e para vc tirar os () que estão no update e não do método executeUpdate ! faz isso que acho que vai funcionar

M

nem assim ta dando certo

felipealbuquerque

Sintaxe correta:

UPDATE SET Campo1 = Valor1, Campo2 = Valor2, … WHERE <CONDIÇÃO>

Sem os ‘(’ e ‘)’

Sugestão: Corrija o seu comando SQL e utilize PreparedStatement ao invés de misturar a String com os atributos do jeito que você está fazendo. Essa abordagem deixa o código confuso e com maiores chances de ter erros.

felipealbuquerque

Um tutorial que auxilia na utilização de PreparedStatement: http://www.guj.com.br/java.tutorial.artigo.115.1.guj

Bravox

mudou o erro pelo menos ?

M

Continua o mesmo erro vejam como ficou o código

st.executeUpdate ("UPDATE funcionario SET" + "'endereco' = '"+txtrua.getText()+"',funcao = '"+txtfuncao.getText()+"',login = '"+txtlogin.getText()+"',senha = '"+txtsenha.getText()+"',cep = '"+cep.getText()+"',cidade = '"+txtcidade.getText()+"',bairro = '"+txtbairro.getText()+"',tel = '"+cel.getText()+"'WHERE registro_func = '"+txtreg_func.getText()+"'");

M

o erro ainda continua o mesmo

felipealbuquerque

Tire as aspas simples que estão envolvendo a palavra endereco e separe o WHERE da antipenúltima '…

Criado 23 de novembro de 2007
Ultima resposta 23 de nov. de 2007
Respostas 14
Participantes 3