Erro ao inserir em um banco postgresql

6 respostas
F

Ola a todos, estou contruindo o dao para insercao dos dados de um cadastro de alunos, mas acontece que o postgre sempre retorna este erro e nao consigo indentificar o que pode ser alguem pode me ajudar ?

1. public boolean gravar(Aluno aluno) throws SQLException{  
   2.         System.out.println("aqui"+aluno.getCidade());  
   3.         try {  
   4.             PreparedStatement comandoSQL;  
   5.             comandoSQL = Conexao.getInstance().prepareStatement("insert into aluno (codaluno,cidade_cidade,nomealuno," +  
   6.                                                                                          "enderecoresidencial,enderecocomercial," +  
   7.                                                                                          "foneresidencial,fonecomercial,fonecelular," +  
   8.                                                                                          "email,cpf,rg,datanascimento,dataadmissao," +  
   9.                                                                                          "datavencexame,cep,percentualvariacao,situacao," +  
  10.                                                                                          "responsavel,profissao,grauparentesco,observacoes)" +  
  11.                                                                                          " values (default,'?','?','?','?','?','?','?','?'," +  
  12.                                                                                          "'?','?','?','?','?','?','?','?','?','?','?','?')");  
  13.             comandoSQL.setString(1, aluno.getCidade());  
  14.             comandoSQL.setString(2, aluno.getNomePessoa());  
  15.             comandoSQL.setString(3, aluno.getEnderecoResidencial());  
  16.             comandoSQL.setString(4, aluno.getEnderecoComercial());  
  17.             comandoSQL.setString(5, aluno.getFoneResidencial());  
  18.             comandoSQL.setString(6, aluno.getFoneComercial());  
  19.             comandoSQL.setString(7, aluno.getFoneCelular());  
  20.             comandoSQL.setString(8, aluno.getEmail());  
  21.             comandoSQL.setInt(9, Integer.parseInt(aluno.getCpf()));  
  22.             comandoSQL.setInt(10, Integer.parseInt(aluno.getRg()));  
  23.             comandoSQL.setString(11, aluno.getDataNascimento());  
  24.             comandoSQL.setString(12, aluno.getDataAdmissao());  
  25.             comandoSQL.setString(13, aluno.getDataVencExame());  
  26.             comandoSQL.setString(14, aluno.getCep());  
  27.             comandoSQL.setFloat(15, aluno.getPercentualVariacao());  
  28.             comandoSQL.setString(16, aluno.getSituacao());  
  29.             comandoSQL.setString(17, aluno.getResponsavel());  
  30.             comandoSQL.setString(18, aluno.getProfissao());  
  31.             comandoSQL.setString(19, aluno.getGrauParentesco());  
  32.             comandoSQL.setString(20, aluno.getObservacoes());  
  33.             comandoSQL.execute();  
  34.             Conexao.getInstance().setAutoCommit(true);  
  35.             return true;  
  36.         } catch (SQLException e) {  
  37.             e.printStackTrace();  
  38.         }  
  39.         Conexao.getInstance().close();  
  40.         System.out.println("teste");  
  41.         return false;  
  42.           
  43.     }

o erro é este:

1. org.postgresql.util.PSQLException: O índice da coluna está fora do intervalo: 1, número de colunas: 0.  
   2.         at org.postgresql.core.v3.SimpleParameterList.bind(SimpleParameterList.java:57)  
   3.         at org.postgresql.core.v3.SimpleParameterList.setStringParameter(SimpleParameterList.java:121)  
   4.         at org.postgresql.jdbc2.AbstractJdbc2Statement.bindString(AbstractJdbc2Statement.java:2112)  
   5.         at org.postgresql.jdbc2.AbstractJdbc2Statement.setString(AbstractJdbc2Statement.java:1238)  
   6.         at org.postgresql.jdbc2.AbstractJdbc2Statement.setString(AbstractJdbc2Statement.java:1224)  
   7.         at br.academia.DAO.AlunoDAO.gravar(AlunoDAO.java:36)  
   8.         at br.academia.Gui.FrameAlunos.jbGravarActionPerformed(FrameAlunos.java:503)  
   9.         at br.academia.Gui.FrameAlunos.access$100(FrameAlunos.java:23)  
  10.         at br.academia.Gui.FrameAlunos$2.actionPerformed(FrameAlunos.java:417)  
  11.         at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)  
  12.         at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)  
  13.         at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)  
  14.         at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)  
  15.         at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)  
  16.         at java.awt.Component.processMouseEvent(Component.java:6038)  
  17.         at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)  
  18.         at java.awt.Component.processEvent(Component.java:5803)  
  19.         at java.awt.Container.processEvent(Container.java:2058)  
  20.         at java.awt.Component.dispatchEventImpl(Component.java:4410)  
  21.         at java.awt.Container.dispatchEventImpl(Container.java:2116)  
  22.         at java.awt.Component.dispatchEvent(Component.java:4240)  
  23.         at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)  
  24.         at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)  
  25.         at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)  
  26.         at java.awt.Container.dispatchEventImpl(Container.java:2102)  
  27.         at java.awt.Window.dispatchEventImpl(Window.java:2429)  
  28.         at java.awt.Component.dispatchEvent(Component.java:4240)  
  29.         at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)  
  30.         at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)  
  31.         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)  
  32.         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)  
  33.         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)  
  34.         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)  
  35.         at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)  
  36. BUILD SUCCESSFUL (total time: 32 seconds)

6 Respostas

thiago.correa

Retirae as aspas simples dos binds (os pontos de interrogação!) do seu PreparedSatement. Elas não são necessárias quando se usa essa API.

ramilani12

Acho que vc esqueceu de especificar um parametro para PreparedStatement

thiago.correa

:shock: ih postei no lugar errado

F

Eu contei denovo e está certo, são 21 colunas, sendo que codaluno é uma do tipo seria, então eu tenho uma como default e outros 20 “?” que da no total 21, está certo isto ?

F

isto procede mesmo? então posso tirar que pode funcionar ?

Obrigado

F

isto procede mesmo? então posso tirar que pode funcionar ?

Obrigado

Funcionou, valeu obrigado!

Criado 8 de janeiro de 2007
Ultima resposta 8 de jan. de 2007
Respostas 6
Participantes 3