Erro em programa

6 respostas
G

Aparece o seguinte erro no meu programa:

08/11/2009 18:34:00 aplicativo.Cadastrar botaoSalvarActionPerformed
SEVERE: null
org.postgresql.util.PSQLException: ERRO: erro de sintaxe em ou próximo a ","
  Posição: 84
        at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:252)
        at aplicativo.Cadastrar.salvar(Cadastrar.java:52)
        at aplicativo.Cadastrar.botaoSalvarActionPerformed(Cadastrar.java:199)
        at aplicativo.Cadastrar.access$100(Cadastrar.java:26)
        at aplicativo.Cadastrar$2.actionPerformed(Cadastrar.java:113)
        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:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2475)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

E o código dele é:

public void salvar() throws SQLException{

       
       String url = "jdbc:postgresql://localhost:5432/";
       Connection con;
       Statement stmt;
        try {
            Class.forName("org.postgresql.Driver");
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Cadastrar.class.getName()).log(Level.SEVERE, null, ex);
        }
       con = DriverManager.getConnection(url, "postgres", "teste");
      

       stmt = con.createStatement();
       
      
             

       stmt.executeQuery("INSERT INTO programa (nome, cpf, cep, endereco, bairro, cidade, descricao) VALUES ("+textNome.getText()+","+textCpf.getText()+","+textCep.getText()+","+textDescricao.getText()+", "+textBairro.getText()+","+textCidade.getText()+","+textDescricao.getText()+" )");
       stmt.close();

    }

Alguem pode me ajudar?????? :D

6 Respostas

doug

Olá

Então todas as String deve ser colocadas entre aspas ('<string>'), por exemplo:
stmt.executeQuery("INSERT INTO programa (nome, cpf, cep, endereco, bairro, cidade, descricao) VALUES ('"+textNome.getText()+"','"+textCpf.getText()+"','"+textCep.getText()+"',"'+textDescricao.getText()+'", "'+textBairro.getText()+"','"+textCidade.getText()+"',' "+textDescricao.getText()+"' )");

Isso deve solucionar seu problema
Espero ter ajudado

Flwss

G

Agora aparece esse erro:

08/11/2009 18:50:30 aplicativo.Cadastrar botaoSalvarActionPerformed SEVERE: null org.postgresql.util.PSQLException: ERRO: coluna "nome" da relação "programa" não existe Posição: 23 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:345) at aplicativo.Cadastrar.salvar(Cadastrar.java:52) at aplicativo.Cadastrar.botaoSalvarActionPerformed(Cadastrar.java:199) at aplicativo.Cadastrar.access$100(Cadastrar.java:26) at aplicativo.Cadastrar$2.actionPerformed(Cadastrar.java:113) 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:6263) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6028) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4630) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2475) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Sendo que no banco de dados a tabela “programa” existe sim… :cry: e as colunas estão em maiúscula… isso influencia?

R

vc tem uma coluna “nome” na tabela “programa”?

G

Consegui arrumar o problema!

Valeu pela ajuda!

G

Agora estou com outro problema...

Como faço para saber que os dados que digitei estão mesmo no banco de dados?

Fiz um pequeno teste, fazendo uma pesquisa com o código abaixo, mas não me retornou nada. Estou quebrando a cabeça demais nesse projeto, que é um cadastro de clientes...

String url = "jdbc:postgresql://localhost:5432/";
       Connection con;
       Statement stmt;
        try {
            Class.forName("org.postgresql.Driver");
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Pesquisar.class.getName()).log(Level.SEVERE, null, ex);
        }
       
            con = DriverManager.getConnection(url, "postgres", "090188");
       
            stmt = con.createStatement();
       


        String nome = textNome.getText();


       stmt.execute("SELECT (nome, endereco) FROM programa WHERE nome = '"+nome+"' ");



       stmt.close();
nel

Boa noite.

Não existe necessidade neste caso do parenteses concorda? Eu recomendo também mudar o Statement para PreparedStatement.
Então, qual erro está acontecendo?! Pois se o erro é que não está retornando nada é porque o nome não é exatamente igual ao cadastrado no banco de dados, então, altere o ‘=’ para like.

Abraços.

Criado 8 de novembro de 2009
Ultima resposta 8 de nov. de 2009
Respostas 6
Participantes 4