VinnYSPL 0 Denunciar post Postado Novembro 25, 2010 Ola pessoal bom estou com um pequeno problema que nao sei como resolver se alguem poder me ajudar. package br.com.sisvenda.vendas; import br.com.bd.AcessoMysql; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * * @author Vinicius */ public class VendaControl { PreparedStatement pstm; ResultSet rs; AcessoMysql mysql = new AcessoMysql(); String cadastraVenda = "INSERT INTO vendas SET (VEN_ID, PRO_ID, CLI_ID, VEN_DATA, VEN_QTD) VALUES (?,?,?,?,?)"; public void cadastrarVenda(VendaBean venda){ try { pstm = mysql.conectar().prepareStatement(cadastraVenda); pstm.setInt(1, venda.getVenid()); pstm.setInt(2, venda.getVen_proid()); pstm.setInt(3, venda.getVen_cliid()); pstm.setDate(4, venda.getVendata()); pstm.setInt(5, venda.getVenqtd()); pstm.executeUpdate(); mysql.deconectar(); } catch (SQLException ex) { ex.printStackTrace(); } } }Pagina de conexão package br.com.bd; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author Vinicius */ public class AcessoMysql { Connection con; /*Conexao com o mysql*/ public AcessoMysql(){ } public Connection conectar() throws ClassNotFoundException{ Class.forName("com.mysql.jdbc.Driver"); try { con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/sis?user=root&password=remo"); } catch (SQLException ex) { Logger.getLogger(AcessoMysql.class.getName()).log(Level.SEVERE, null, ex); } return con; } public void deconectar(){ try { con.close(); } catch (SQLException ex) { Logger.getLogger(AcessoMysql.class.getName()).log(Level.SEVERE, null, ex); } } }Erro gerado 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 '(VEN_ID, PRO_ID, CLI_ID, VEN_DATA, VEN_QTD) VALUES (1,1,1,'2010-11-25',2)' at line 1 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.Util.getInstance(Util.java:381) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1031) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3376) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3308) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1837) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1961) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2543) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1737) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2022) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1940) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1925) at br.com.sisvenda.vendas.VendaControl.cadastrarVenda(VendaControl.java:53) at br.com.sisvenda.RegistrarVenda.cadastrarProduto(RegistrarVenda.java:249) at br.com.sisvenda.RegistrarVenda.btFinalizarActionPerformed(RegistrarVenda.java:267) at br.com.sisvenda.RegistrarVenda.access$300(RegistrarVenda.java:28) at br.com.sisvenda.RegistrarVenda$4.actionPerformed(RegistrarVenda.java:116) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6038) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent(Component.java:5803) at java.awt.Container.processEvent(Container.java:2058) at java.awt.Component.dispatchEventImpl(Component.java:4410) at java.awt.Container.dispatchEventImpl(Container.java:2116) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916) at java.awt.Container.dispatchEventImpl(Container.java:2102) at java.awt.Window.dispatchEventImpl(Window.java:2429) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) at java.awt.EventDispatchThread.run(EventDispatchThread.java:121) 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 '(VEN_ID, PRO_ID, CLI_ID, VEN_DATA, VEN_QTD) VALUES (1,2,1,'2010-11-25',1)' at line 1 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.Util.getInstance(Util.java:381) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1031) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3376) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3308) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1837) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1961) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2543) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1737) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2022) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1940) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1925) at br.com.sisvenda.vendas.VendaControl.cadastrarVenda(VendaControl.java:53) at br.com.sisvenda.RegistrarVenda.cadastrarProduto(RegistrarVenda.java:249) at br.com.sisvenda.RegistrarVenda.btFinalizarActionPerformed(RegistrarVenda.java:267) at br.com.sisvenda.RegistrarVenda.access$300(RegistrarVenda.java:28) at br.com.sisvenda.RegistrarVenda$4.actionPerformed(RegistrarVenda.java:116) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6038) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent(Component.java:5803) at java.awt.Container.processEvent(Container.java:2058) at java.awt.Component.dispatchEventImpl(Component.java:4410) at java.awt.Container.dispatchEventImpl(Container.java:2116) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916) at java.awt.Container.dispatchEventImpl(Container.java:2102) at java.awt.Window.dispatchEventImpl(Window.java:2429) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) at java.awt.EventDispatchThread.run(EventDispatchThread.java:121) CONSTRUÍDO COM SUCESSO (tempo total: 21 segundos) Bom pessoal desculpa ai mais eu ainda sou inciante e utilizo o NetBeans mais espero estar estudando mais para logo poder ajudar a todos :) Compartilhar este post Link para o post Compartilhar em outros sites
Vergil 15 Denunciar post Postado Novembro 26, 2010 Olhando rápido se código vi que só tem uma coisa esquisita: você em nenhum momento abre a conexão com o Servidor de banco. http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif Agora vamos ao que interessa. O erro acontece devido a um erro de SQL. A sintaxe da sua query está errada. Comando insert não tem set, quem usa set é o comando update. INSERT INTO vendas (VEN_ID, PRO_ID, CLI_ID, VEN_DATA, VEN_QTD) VALUES (?,?,?,?,?) Espero que seu campo VEN_ID não seja auto_increment, se for dará erro. Campo auto_increment ou você não informa valor ou você informa vazio (''), entre aspas simples. Compartilhar este post Link para o post Compartilhar em outros sites
VinnYSPL 0 Denunciar post Postado Novembro 26, 2010 Olhando rápido se código vi que só tem uma coisa esquisita: você em nenhum momento abre a conexão com o Servidor de banco. http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif Agora vamos ao que interessa. O erro acontece devido a um erro de SQL. A sintaxe da sua query está errada. Comando insert não tem set, quem usa set é o comando update. INSERT INTO vendas (VEN_ID, PRO_ID, CLI_ID, VEN_DATA, VEN_QTD) VALUES (?,?,?,?,?) Espero que seu campo VEN_ID não seja auto_increment, se for dará erro. Campo auto_increment ou você não informa valor ou você informa vazio (''), entre aspas simples. Muito obrigado amigo eu juro que reli esse código milhares de vezes e não reparei isso :( bom mais a o conectar esta logo abaixo do trypstm = mysql.conectar().prepareStatement(cadastraVenda) mysq e o objeto que contem a conexão do bd. Compartilhar este post Link para o post Compartilhar em outros sites
Vergil 15 Denunciar post Postado Novembro 26, 2010 bom mais a o conectar esta logo abaixo do trypstm = mysql.conectar().prepareStatement(cadastraVenda) mysq e o objeto que contem a conexão do bd. Ah, sim! Bem, não é a forma ideal. Mas tudo bem! Nada contra. Só acho que ficaria melhor se você tivesse um método sem retorna pra conectar e outra pra retorna o objeto de conexão. Compartilhar este post Link para o post Compartilhar em outros sites