Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

VinnYSPL

[Resolvido] Erro com a conexão MySql

Recommended Posts

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.