Erro ao inserir em um banco postgresql

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)  

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.

Acho que vc esqueceu de especificar um parametro para PreparedStatement

:shock: ih postei no lugar errado

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 ?

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

Obrigado

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

Obrigado[/quote]

Funcionou, valeu obrigado!