public int Salvar(Pessoa obj){
        PreparedStatement comando = null;
        int id = 0;
        try{
            if(obj.getId() == 0){
               comando = banco.getConexao()
                        .prepareStatement("INSERT INTO pessoas (nome,rg,cpf,"
                       + "data_nascimento,ativo) VALUES (?,?,?,?,?)");
                comando.setString(1, obj.getNome());
                comando.setString(2, obj.getRg());
                comando.setString(3, obj.getCpf());
                Date dataBd = new Date(obj.getDataNascimento().getTime());
                comando.setDate(4, dataBd);
                comando.setInt(5, obj.getAtivo());
                              
                comando.executeUpdate();
                PreparedStatement comando2 = banco.getConexao()
                        .prepareStatement("SELECT MAX(id) FROM pessoas WHERE ativo = 1");
                ResultSet consulta = comando2.executeQuery();
                consulta.first();
                id = consulta.getInt("MAX(id)");
                comando.getConnection().commit(); //verificar
                //Inserindo os enderecos
                
                if(!obj.getEnderecos().isEmpty()){
                    List<Endereco> listaEnderecos = obj.getEnderecos();
                    EnderecoDAO daoEndereco = new EnderecoDAO();

                    for(Endereco e : listaEnderecos){
                        daoEndereco.Salvar(e, id);

                    }
                }
                
                // Inserindo os telefones
                
                if(!obj.getTelefones().isEmpty()){
                    List<Telefone> listaTelefone = obj.getTelefones();
                    TelefoneDAO daoTelefone = new TelefoneDAO();
                    
                    for(Telefone t : listaTelefone){
                        daoTelefone.Salvar(t,id);
                    }
                
                
                }
                
                //Inserindo os Emails
                
                if(!obj.getEmails().isEmpty()){
                    List<Email> listaEmails = obj.getEmails();
                    EmailDAO daoEmail = new EmailDAO();
                    
                    for(Email e : listaEmails){
                        daoEmail.Salvar(e, id);
                    }
                }
                
                
                
                //comando.getConnection().commit();
                comando2.getConnection().commit();
                
            
            }else{
                comando = banco.getConexao()
                        .prepareStatement("UPDATE pessoas SET nome = ?, rg = ?, cpf = ?, "
                        + "data_nascimento = ? WHERE id = ? ");
                comando.setString(1, obj.getNome());
                comando.setString(2, obj.getRg());
                comando.setString(3, obj.getCpf());
                Date dataBd = new Date(obj.getDataNascimento().getTime());
                comando.setDate(4, dataBd);
                comando.setInt(5, obj.getId());
                
                comando.executeUpdate();
                comando.getConnection().commit();
            
            }
            return id;
           }catch(SQLException ex){
                ex.printStackTrace();
                
                return 0;
            }
        
    }