Atualização

2 respostas
R

Estou com um problema para fazer a atualização dos registros em meu banco de dados. Já consegui descobrir como se faz para incluir, deletar e inserir dados, mas não sei como eu faço para atualizar os dados.
Segue o código abaixo

private void jAtualFornecedorActionPerformed(java.awt.event.ActionEvent evt) {

try

{

String classpath = “mysql-connector-java-5.0.4-bin.jar”;

String driverName = “com.mysql.jdbc.Driver”;

Class.forName(driverName);

String url = jdbc:mysql://localhost:3306/hiroko;

String username = “administrador”;

String password = “123456”;

Connection con= DriverManager.getConnection(url, username, password);
atual = ("update fornecedor set (codigo = " + Integer.parseInt(jTFcodigo.getText()) + ", contato = " + this.jTFcontato.getText() + ", cpfcgccnpj = " + Integer.parseInt(this.jTFcgccpf.getText()) + ", endereco = " + this.jTFendereco.getText() + ", cidade = " + this.jTFcidade.getText() +  ", uf = " + this.jCBuf.getName() + ", telefone = " + Integer.parseInt(this.jTFtelefone.getText()) + ", email = " + this.jTFemail.getText() + ", site = " + this.jTFsite.getText() + ", notafiscal = " + Integer.parseInt(this.jTFfiscal.getText()) + ") where (codigo = '" + Integer.parseInt(jTFcodigo.getText()) + "', contato ='" + this.jTFcontato.getText() +  "', cpfcgccnpj ='" + Integer.parseInt(this.jTFcgccpf.getText()) + "', endereco = '"  + this.jTFendereco.getText() +  "', cidade = '" + this.jTFcidade.getText() + "', uf = '" + this.jCBuf.getName() + "',telefone = '" + Integer.parseInt(this.jTFtelefone.getText()) + "',email = '" + this.jTFemail.getText() + "', site = '" + this.jTFsite.getText() + "', notafiscal'" + Integer.parseInt(this.jTFfiscal.getText()) + "')");
                               
            PreparedStatement stmt = con.prepareStatement(atual);
            stmt.executeUpdate(atual);                
       } 
            catch (ClassNotFoundException e)                
        {
                //Driver não encontrado
            System.out.println("O driver expecificado não foi encontrado.");
            e.printStackTrace();
        } 
            catch (SQLException e)
        {
                //Não está conseguindo se conectar ao banco
            System.out.println("Não foi possível conectar ao Banco de Dados");
            e.printStackTrace();
        }
}

quando eu mando atualizar ele me retorna a seguinte mensagen de erro.

com.mysql.jdbc.exceptions.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 (codigo = 56584, contato = manuelsilca, cpfcgccnpj = 8398, endereco = rua onde q at line 1

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)

at com.mysql.jdbc.Connection.execSQL(Connection.java:3170)

at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1316)

at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1235)

at hfuniformes.Fornecedor.jAtualFornecedorActionPerformed(Fornecedor.java:311)

at hfuniformes.Fornecedor.access$400(Fornecedor.java:21)

at hfuniformes.Fornecedor$6.actionPerformed(Fornecedor.java:265)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)

at java.awt.Component.processMouseEvent(Component.java:5488)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)

at java.awt.Component.processEvent(Component.java:5253)

at java.awt.Container.processEvent(Container.java:1966)

at java.awt.Component.dispatchEventImpl(Component.java:3955)

at java.awt.Container.dispatchEventImpl(Container.java:2024)

at java.awt.Component.dispatchEvent(Component.java:3803)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)

at java.awt.Container.dispatchEventImpl(Container.java:2010)

at java.awt.Window.dispatchEventImpl(Window.java:1774)

at java.awt.Component.dispatchEvent(Component.java:3803)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

2 Respostas

D

retire o paranteses ali…

update tabela set codigo=codi, nome=nom, cidade=cid where parametro=param

leia mais aqui:
http://dev.mysql.com/doc/refman/5.0/en/update.html

t+

J

Use PreparedStatement! 8O

PreparedStatement stmt = conexao.prepareStatement("update tabela set nome = ?, endereco = ? where id = ?");

stmt.setString(1, "Jair");
stmt.setString(2, "rua tal, bh mg");
stmt.setInt(3, 1234);

stmt.executeUpdate();

Você esqueceu um monte de aspas aí, mas o PreparedStatement já vai resolver isso pra vc, nao precisa corrigir, se quiser, claro!

Criado 22 de janeiro de 2007
Ultima resposta 22 de jan. de 2007
Respostas 2
Participantes 3