Ajuda com Inclusão no Banco MYSQL

2 respostas
cris2002

Olá pessoal do GUJ, estou com um problema que seria trivial (Se estivesse funcionando!!!) :?
tenho um jtable que recebe a listagem de uma tabela no banco de dados mysql, e um botão que salva mais registros no banco em tempo real e exibe na jtable , porem, isso não esta funcionando! Essa estrutura esta estruturada em abas de um jtabbedpane, onde cada aba tem uma jtable mostrando uma tabela do banco, e existe apenas um botão salvar, que de acordo com a aba selecionada executa a inclusão na tabela certa do banco.
Porem ai vem o erro, eu só estou conseguindo incluir na primeira aba, eu ja tenho o codigo que seleciona a aba escolhida mas a operação de inclusão e exclusão nas outras abas não funciona!

Meu codigo está assim.

ver qual aba esta selecionada e executar método correspondente

private void jButtonAdmSalvarActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        
        int cadastrode=jTabbedPaneCadastros.getSelectedIndex();
        switch (cadastrode){
            case 0: if(jTextFieldNome.isEditable() && jTextFieldVisuSenha.isEditable()) SalvaPessoa();
            if(jTextFieldVisuSenha.isEditable() && !(jTextFieldNome.isEditable())) AlteraSenha();
            break;
            case 1: SalvaEquipamento();
            break;
            case 2: SalvaSecao();
            break;
            case 3: SalvaAviso();
            break;
        }
    }

os métodos de inclusão…

public void SalvaEquipamento(){
        int idsecao = Integer.parseInt(jTextFieldEQSecao.getText());
        String cdequipamento = jTextFieldCodEquip.getText();
        String funcao = jTextFieldFuncaoEquip.getText();
        int ttol = Integer.parseInt(jTextFieldTempTolerancia.getText());
        int acessMin = Integer.parseInt(jTextFieldNivelAcessoMinEquip.getText());
        boolean valor = eq.insereEquipamento(idsecao,cdequipamento,funcao,acessMin,ttol,1);
        boolean hist = ht.insereHistorico(ps.getID(ps.getNome()),"Equipamento","Inclusao de Registro: " + cdequipamento,getData());
        int radioV = 1;
        if(jRadioButtonEquipAtivo.isSelected()) radioV = 1;
        if(jRadioButtonEquipRestrito.isSelected()) radioV = 2;
        if(jRadioButtonEquipParado.isSelected()) radioV = 3;
        
        boolean valorEstatus = st.insereStatus((ps.getID(ps.getNome())),(eq.buscaID(cdequipamento)),radioV, getData(), (jTextFieldMotivo.getText()));
        AtualizaTabela(getResultsEquipamentos(),jTableEquipamentos);
        AtualizaTabela(getEquipamentosAtivos(),jTableEqAtivo);
        AtualizaTabela(getEquipamentosRestritos(),jTableEqRestrito);
        AtualizaTabela(getEquipamentosParados(),jTableEqParado);
    }
    
    public void SalvaSecao(){
        String codsecao = jTextFieldCodSecao.getText();
        String nomsecao = jTextFieldNomeSecao.getText();
        String cidade = jTextFieldCidade.getText();
        String unidade = jTextFieldUnidade.getText();
        double lat = Double.parseDouble(jTextFieldLat.getText());
        double lon = Double.parseDouble(jTextFieldLon.getText());
        boolean valor = sc.insereSecao(lat,lon,codsecao,nomsecao,cidade,unidade);
        boolean hist = ht.insereHistorico(ps.getID(ps.getNome()),"Seção","Inclusao de Seção: " + codsecao,getData());
        AtualizaTabela(getResultsSecoes(),jTableSecao);
    }
    
    public void SalvaAviso(){
        int secao = Integer.parseInt(jTextFieldAVSecao.getText());
        String assunto = jTextFieldAVAssunto.getText();
        String data = jTextFieldDataNoticia.getText();
        String descricao = jTextPaneEdicaoTexto.getText();
        boolean valor = av.insereAviso(secao,assunto,descricao,data);
        boolean hist = ht.insereHistorico(ps.getID(ps.getNome()),"Aviso","Inclusao de Aviso: " + descricao,getData());
        AtualizaTabela(getResultsAviso(),jTableNoticia);
    }
    
    public void SalvaPessoa(){
        int idsecao = Integer.parseInt(jTextFieldUSSecao.getText());
        int registro = Integer.parseInt(jTextFieldNumRegistro.getText());
        String nome = jTextFieldNome.getText();
        String cpf = jFormattedTextFieldCPF.getText();
        String senha = jTextFieldVisuSenha.getText();
        int nivel = Integer.parseInt(jTextFieldNivelAcesso.getText());
        
        int adm = 0;
        if(jRadioButtonAdmNAO.isSelected()) adm = 0;
        if(jRadioButtonAdmSIM.isSelected()) adm = 1;
        
        boolean valor = ps.inserePessoa(idsecao,registro,nome,cpf,nivel,senha,adm,1);
        boolean hist = ht.insereHistorico(ps.getID(ps.getNome()),"Pessoa","Inclusao de Registro: " + nome,getData());
        AtualizaTabela(getResultsUsuarios(),jTableUsuarios);
    }

e por ultimo os métodos de inclusão de cada classe…
classe Equipamento

public boolean insereEquipamento(int idsecao, String codequipamento, String funcao, int nivelacessomin, int tolerancia, int equipoativo){
        try {
            
            sql = "insert into equipamento (id_equipamento, id_secao, codigo_equipamento, funcao, nivel_acesso_min, tolerancia, equipo_ativo)" +
                    "values ("+ 0 +", "+ idsecao +", "+ codequipamento +", '"+ funcao +"', "+ nivelacessomin +", "+ tolerancia +", "+ equipoativo +");";
            
            int  rs = conec.getSt().executeUpdate(sql);
            if (rs != 0)
                return true;
            else
                return false;
        }catch (Exception ex){
            return false;
        }
    }

classe status

public boolean insereStatus(int idpessoa, int idequip, int sts,String dt, String desc){
        
        try{
            sql = "insert into status (id_status, id_pessoa, id_equipamento, status, data_hora_alt, descricao)" +
                    "values (null, "+ idpessoa +", "+ idequip +", "+ sts +", "+ dt +" , '"+ desc +"');";
           
            int rs = conec.getSt().executeUpdate(sql);
        if (rs != 0)
                return true;
            else
                return false;
        }catch (Exception ex){
            return false;
        }
    }

classe aviso

public boolean insereAviso(int idsecao, String assunto, String descraviso, String dataaviso){
        try {
            
            sql = "insert into aviso (id_aviso, id_secao, descr_aviso, data, assunto)" +
                    "values (" + 0 + "," + idsecao + ",'" + descraviso + "', '" + dataaviso + "', '" + assunto + "');";
            
            int  rs = conec.getSt().executeUpdate(sql);

            if (rs != 0){
                
                return true;
            }else
                return false;
        }catch (Exception ex){
            ex.printStackTrace();
            return false;
        }
    }

classe secao

public boolean insereSecao(double latitude, double longitude, String codigo_secao, String nome_secao, String cidade, String nome_unidade){
        try {
            
            sql = " insert into secao (id_secao, codigo_secao, nome_secao, cidade, nome_unidade, latitude, longitude)" +
                  " values (" + 0 + ",'" + codigo_secao + "','" + nome_secao + "','" + cidade + "','" + nome_unidade + "'," + latitude + "," + longitude + ");";
            
            int  rs = conec.getSt().executeUpdate(sql);
            
            if (rs != 0)                
                return true;
            else
                return false;
        }catch (Exception ex){
            return false;
        }
    }

classe historico

public boolean insereHistorico(int idpessoa, String nometabela, String alteracao, String datahistorico){
        try {
            
            sql = "insert into historico (id_historico, id_pessoa, nome_tabela, alteracao, data)" +
                    "values (" + 0 + ", " + idpessoa + ",'" + nometabela + "', '" + alteracao + "', '" + datahistorico + "');";
            
            int  rs = conec.getSt().executeUpdate(sql);

            if (rs != 0){
                
                return true;
            }else
                return false;
        }catch (Exception ex){
            ex.printStackTrace();
            return false;
        }
    }

e por ultimo, o método da última classe que esta funcionando, a classe pessoa

public boolean inserePessoa(int idsecao, int registro, String nomepessoa, String cpf, int nivelacesso, String senha, int adm, int pessoaativa){
        try {
            
            sql = "insert into pessoa (id_pessoa, id_secao, registro, nome_pessoa, cpf, nivel_acesso, senha, adm, pessoa_ativa)" +
                    "values (" + 0 + ", " + idsecao + ", " + registro + ", '" + nomepessoa + "', '" + cpf + "', " + nivelacesso + ", '" + senha + "', " + adm + ", " + pessoaativa + ");";
            
            int  rs = conec.getSt().executeUpdate(sql);
            
            if (rs != 0){
                
                return true;
            }else
                return false;
        }catch (Exception ex){
            ex.printStackTrace();
            return false;
        }
    }

Eu não consigo achar o erro, sempre da NullPointerException, mas pra mim está tudo correto!
outra coisa chata é que se eu tento incluir um registro na tabela historico ao mesmo tempo que na tabela pessoa, da o mesmo erro, mas se não fizer isso , a inclusão acontece normalmente! o engraçado é que com as outras tabelas, nenhum registro é incluido!!!

Estou usando o NetBeans 5.5.1 pra programar

2 Respostas

furutani

Olá

Se voce postasse o erro exibido (stacktrace) ficava mais facil de te ajudar.

rubinelli

NullPointerException é o erro mais comum, e normalmente um dos mais simples de resolver. Veja a linha em que está dando exceção, coloque um breakpoint nela e rode em modo debug a hora que o programa parar, veja qual objeto usado naquela linha tem valor null.

Criado 30 de novembro de 2007
Ultima resposta 1 de dez. de 2007
Respostas 2
Participantes 3