Pessoal, tou com um problema quando vou atualizar um registro e já quebrei a cabeça procurando o erro e não consegui encontrar. Alguém pode me ajudar?
Vejam só, esse é o erro:
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 'idServico = 6' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
at br.com.sisos.dao.ServicoDAO.alterarOs(ServicoDAO.java:92)
at sisos.OsView.salvarOsSemFinalizar(OsView.java:534)
at sisos.OsView.btnSalvarSemFinalizarActionPerformed(OsView.java:514)
at sisos.OsView.access$000(OsView.java:24)
at sisos.OsView$1.actionPerformed(OsView.java:196)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at com.jtattoo.plaf.BaseButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:121)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
at java.awt.Dialog.show(Dialog.java:1072)
at java.awt.Component.show(Component.java:1651)
at java.awt.Component.setVisible(Component.java:1603)
at java.awt.Window.setVisible(Window.java:1013)
at java.awt.Dialog.setVisible(Dialog.java:1003)
at sisos.PrincipalIFView.btnMovimentarOSActionPerformed(PrincipalIFView.java:874)
at sisos.PrincipalIFView.access$1000(PrincipalIFView.java:20)
at sisos.PrincipalIFView$11.actionPerformed(PrincipalIFView.java:602)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.AbstractButton.doClick(AbstractButton.java:356)
at sisos.PrincipalIFView.jXTableOSMouseClicked(PrincipalIFView.java:1015)
at sisos.PrincipalIFView.access$1100(PrincipalIFView.java:20)
at sisos.PrincipalIFView$12.mouseClicked(PrincipalIFView.java:636)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
at java.awt.Component.processMouseEvent(Component.java:6508)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Ele dá sempre que tento atualizar uma tabela chamada Servico.
Eu chamo esse método para atualizar o registro:
public void alterarOs(ServicoBean bean) {
try {
pstm = (PreparedStatement) con.conectar().prepareStatement(alteraOs);
pstm.setInt(1, bean.getOrcamento_Cliente_idCliente());
pstm.setInt(2, bean.getOrcamento_idOrcamento());
pstm.setDate(3, bean.getDataServico());
pstm.setString(4, bean.getNotaFiscalServico());
pstm.setString(5, bean.getDescricaoServico());
pstm.setString(6, bean.getStatusServico());
pstm.setString(7, bean.getObsServico());
pstm.setBoolean(8, bean.isFlagStatus());
pstm.setInt(9, bean.getIdServico());
pstm.executeUpdate();
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro ao alterar o Ordem de Serviço\n" + ex.getMessage(), "Erro", 1);
ex.printStackTrace();
} finally {
con.desconectar();
}
}
O parâmetro alteraOs utilizado no método acima tá assim:
String alteraOs = "UPDATE Servico SET "
+ "Orcamento_Cliente_idCliente = ?,"
+ "Orcamento_idOrcamento = ?, "
+ "dataServico = ?, "
+ "notaFiscalServico = ?, "
+ "descricaoServico = ?,"
+ "statusServico = ?,"
+ "obsServico = ?,"
+ "flagStatus = ?"
+ "WHERE idServico = ?";
Eu seto os valores dessa forma, na classe ServicoView:
private void salvarOsSemFinalizar() {
try {
servicoBean.setOrcamento_Cliente_idCliente(Integer.parseInt(getTxtCodCliente()));
servicoBean.setOrcamento_idOrcamento(Integer.parseInt(getTxtCodigoOrcamento()));
if (getjXDatePickerServico() != null) {
//Formatar data de java.util para java.sql
java.util.Date utilDateServico = getjXDatePickerServico();
java.sql.Date sqlDateServico = new java.sql.Date(utilDateServico.getTime());
servicoBean.setDataServico(sqlDateServico);
}
servicoBean.setNotaFiscalServico(getTxtNotaFiscal());
servicoBean.setDescricaoServico(getjXTextAreaDescricaoServico());
servicoBean.setStatusServico(getCbStatusServico());
servicoBean.setObsServico(getjXTextAreaObsServico());
servicoBean.setFlagStatus(false);
servicoBean.setIdServico(Integer.parseInt(txtCodServico.getText()));
servicoDAO.alterarOs(servicoBean);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Erro ao movimentar a Ordem de Serviço\n" + e.getMessage(), "Erro", 1);
}
}
Bem é esse aí o meu erro.