Erro na linha 62 ao tentar inserir registro

1 resposta
E

Alguem sabe que erro e esse?

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 2
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.clearParameter(JdbcOdbcPreparedStatement.java:1023)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setChar(JdbcOdbcPreparedStatement.java:3057)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setString(JdbcOdbcPreparedStatement.java:766)
at trabalho.PessoaDAO.inclua(PessoaDAO.java:62)

segue o codigo

package trabalho;

// Data Access Object -> Objeto de Acesso a Dados

import genereico.AccessJDBCUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class PessoaDAO {
    // variavel para guardar a conexão com o BD
    private Connection con;
    // variavel para acessar o BD via SQL
    private PreparedStatement ps;

    public PessoaDAO(){
        try {
            con = AccessJDBCUtil.getAccessDBConnection("D:\Trabalho.mdb");
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }

    public String obtemContatosComoString(){
        String str = "";
        try {
            ps = con.prepareStatement(
                    " SELECT * FROM trabalho " +
                    " ORDER BY codigo");
            ResultSet rs = ps.executeQuery();
            while(rs.next()){
                str += 
                       rs.getString("nome") +", "+
                       rs.getString("dataNasc")    +", "+
                       rs.getString("sexo") +", "+
                       rs.getString("cidade") +", "+
                       rs.getString("estado") +", "+
                       rs.getString("motivoDaMorte") +", "+
                       rs.getString("dataDaMorte") +", "+
                       rs.getString("dataDoEnterro")+"\n";

            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }

        return str;
    }

    public boolean inclua(Pessoa pessoa){
        boolean sucesso;
        try {
            ps = con.prepareStatement(
                    " INSERT INTO trabalho " +
                    " (nome,dataNasc,sexo,cidade,estado,motivoDaMorte,dataDaMorte,dataDoEntero) VALUES (?,?) ");
            
            ps.setString(1, pessoa.getNome());
            ps.setString(2, pessoa.getDataNasc());
            ps.setString(3, pessoa.getSexo());
            ps.setString(4, pessoa.getCidade());
            ps.setString(5, pessoa.getEstado());
            ps.setString(6, pessoa.getMotivoDaMorte());
            ps.setString(7, pessoa.getDataDaMorte());
            ps.setString(8, pessoa.getDataDoIntero());
            ps.executeUpdate();
            sucesso = true;
        } catch (SQLException ex) {
            ex.printStackTrace();
            sucesso = false;
        }
        return sucesso;
    }


}

e o codigo da classe que vai dar o salvar pra inserir nova linha

package trabalho;

import genereico.ManipulaTxt;
import javax.swing.JOptionPane;

public class Trabalho extends javax.swing.JFrame {

    private String nomes, msg;

    public Trabalho() {
        super("Funeraria Jesus Te Chama");
        initComponents();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        nome = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        dataNasc = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        sexo = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        cidade = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        estado = new javax.swing.JTextField();
        jLabel7 = new javax.swing.JLabel();
        motivoDaMorte = new javax.swing.JTextField();
        jLabel8 = new javax.swing.JLabel();
        dataMorte = new javax.swing.JTextField();
        jLabel9 = new javax.swing.JLabel();
        dataEntero = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        taDados = new javax.swing.JTextArea();
        btSalvar = new javax.swing.JButton();
        btExcluir = new javax.swing.JButton();
        btAlterar = new javax.swing.JButton();
        btSair = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setText("Nome");

        nome.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                nomeActionPerformed(evt);
            }
        });

        jLabel3.setText("Data Nasc");

        jLabel4.setText("Sexo");

        jLabel5.setText("Cidade");

        jLabel6.setText("Estado");

        jLabel7.setText("Causa da Morte");

        jLabel8.setText("Data Morte");

        jLabel9.setText("Data Enterro");

        taDados.setColumns(20);
        taDados.setRows(5);
        jScrollPane1.setViewportView(taDados);

        btSalvar.setText("Salvar");
        btSalvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btSalvarActionPerformed(evt);
            }
        });

        btExcluir.setText("Excluir");

        btAlterar.setText("Alterar");

        btSair.setText("Sair");
        btSair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btSairActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addGap(76, 76, 76)
                                .addComponent(jLabel3))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel1)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(nome, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(dataNasc, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(17, 17, 17)
                                .addComponent(jLabel4)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(sexo, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jLabel6)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(estado, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel5)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(cidade, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel8)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(dataMorte, javax.swing.GroupLayout.DEFAULT_SIZE, 67, Short.MAX_VALUE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel9)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(dataEntero, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE))))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabel7)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(motivoDaMorte, javax.swing.GroupLayout.DEFAULT_SIZE, 367, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 437, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(btSalvar)
                        .addGap(18, 18, 18)
                        .addComponent(btExcluir)
                        .addGap(18, 18, 18)
                        .addComponent(btAlterar)
                        .addGap(18, 18, 18)
                        .addComponent(btSair)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(dataNasc, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(estado, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel6)
                    .addComponent(sexo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4)
                    .addComponent(jLabel8)
                    .addComponent(dataMorte, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(nome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(cidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel9)
                    .addComponent(dataEntero, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel5))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel7)
                    .addComponent(motivoDaMorte, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(26, 26, 26)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(26, 26, 26)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btSalvar)
                    .addComponent(btExcluir)
                    .addComponent(btAlterar)
                    .addComponent(btSair))
                .addContainerGap(57, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    private void btSairActionPerformed(java.awt.event.ActionEvent evt) {                                       
        dispose();
    }                                      

    private void btSalvarActionPerformed(java.awt.event.ActionEvent evt) {                                         

        PessoaDAO dao = new PessoaDAO();
        Pessoa pessoa = new Pessoa();

        pessoa.setNome(nome.getText());
        pessoa.setDataNasc(dataNasc.getText());
        pessoa.setSexo(sexo.getText());
        pessoa.setCidade(cidade.getText());
        pessoa.setEstado(estado.getText());
        pessoa.setMotivoDaMorte(motivoDaMorte.getText());
        pessoa.setDataDaMorte(dataMorte.getText());
        pessoa.setDataDoIntero(dataEntero.getText());

        if (dao.inclua(pessoa)) {
            JOptionPane.showMessageDialog(this, pessoa.getNome() + " Incluido com sucesso!");
            nome.setText("");
            dataNasc.setText("");
            sexo.setText("");
            cidade.setText("");
            estado.setText("");
            motivoDaMorte.setText("");
            dataMorte.setText("");

        } else {
            JOptionPane.showMessageDialog(this, "Nao foi possivel incluir " + pessoa.getNome());
        }

        nomes =("nome: " + nome.getText()+"\n dataNasc: " + dataNasc.getText()+ "\n sexo: "+sexo.getText()+
                "\n cidade: " + cidade.getText()+"\n estado: "+estado.getText()+"\n motivoDaMorte: "+
                motivoDaMorte.getText()+"\n dataDaMorte: "+ dataMorte.getText()+"\n dataDoEnterro: "+dataEntero.getText());

                ManipulaTxt txt = new ManipulaTxt("D:\" + ".txt");
                txt.insereLinha(msg+"\n"+nomes,btSalvar.isSelected());

                JOptionPane.showMessageDialog(null,"Cliente cadastrado com susseso!!!");

    }                                        

    private void nomeActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
    }                                    

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new Trabalho().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JButton btAlterar;
    private javax.swing.JButton btExcluir;
    private javax.swing.JButton btSair;
    private javax.swing.JButton btSalvar;
    private javax.swing.JTextField cidade;
    private javax.swing.JTextField dataEntero;
    private javax.swing.JTextField dataMorte;
    private javax.swing.JTextField dataNasc;
    private javax.swing.JTextField estado;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextField motivoDaMorte;
    private javax.swing.JTextField nome;
    private javax.swing.JTextField sexo;
    private javax.swing.JTextArea taDados;
    // End of variables declaration                   
}

1 Resposta

pmlm
eversonoro:
ps = con.prepareStatement(  
                     " INSERT INTO trabalho " +  
                     " (nome,dataNasc,sexo,cidade,estado,motivoDaMorte,dataDaMorte,dataDoEntero) VALUES (?,?) ");  
               
 ps.setString(1, pessoa.getNome());  
 ps.setString(2, pessoa.getDataNasc());  
 ps.setString(3, pessoa.getSexo());  
 ps.setString(4, pessoa.getCidade());  
 ps.setString(5, pessoa.getEstado());  
 ps.setString(6, pessoa.getMotivoDaMorte());  
 ps.setString(7, pessoa.getDataDaMorte());  
 ps.setString(8, pessoa.getDataDoIntero());
Estás a introduzir valores para 8 parâmetros da PreparedStatement mas apenas tens dois ? no SQL.
Criado 16 de novembro de 2009
Ultima resposta 16 de nov. de 2009
Respostas 1
Participantes 2