Problemas ao passar ResultSet como parametro de um metodo

8 respostas
AlessandroGois

Bom dia pessoal!

Estou com problema em passar um ResultSet como parametro, conforme codigo abaixo:

public void atualizarTabela(ResultSet rs) {
    tbUsuarios.setModel(DbUtils.resultSetToTableModel(rs));
}

O problema é que no DAO tento mandar pra visao e ta dando erro no momento da execução. O Netbeans não trata como erro.

frmCadUsuarios at = null ;
        conn = Conectabd.conectabd();
        stmt = conn.prepareStatement(sql);
        ResultSet rs;
        rs = stmt.executeQuery();
        at.atualizarTabela(rs);

Se alguem puder ajudar ficarei muito agradecido :slightly_smiling:

Abraços,

Alessandro.

8 Respostas

guivirtuoso

E o erro seria?

Faltou colocar a exception amigão!

AlessandroGois

Opa,

Então, eu peguei só a parte do codigo que era bem pontual para este caso. o método todo fica assim:

DAO:

public void listarUsuarios (Usuario usuario) throws SQLException
{

    String sql = "select * from usuarios";
    
    try {
        frmCadUsuarios at = null ;
        conn = Conectabd.conectabd();
        stmt = conn.prepareStatement(sql);
        ResultSet rs;
        rs = stmt.executeQuery();
        at.atualizarTabela(rs);
        
        } 
    catch(ClassNotFoundException e) 
    {
    e.printStackTrace();
    }         
    catch(SQLException e) 
    {
        e.printStackTrace();
    }
    finally 
    {
        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    if (conn != null) {
        conn.close();
    }

}

VISAO

public void listarUsuarios() {
    try {
        dao.listarUsuarios(usuario);

    }
    catch(Exception error)
    {
        JOptionPane.showMessageDialog(null, error);
    }
}

public void atualizarTabela(ResultSet rs) {
    tbUsuarios.setModel(DbUtils.resultSetToTableModel(rs));
}

O erro que ta dando é:

Exception in thread AWT-EventQueue-0 java.lang.NullPointerException

at DAO.DAOUsuario.listarUsuarios(DAOUsuario.java:154)

at VISAO.frmCadUsuarios.(frmCadUsuarios.java:23)

Abraços o/

Alessandro

guivirtuoso

É um NullPointer cara… ou seja… você ta tentando manipular alguma variavel que está nula.

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at DAO.DAOUsuario.listarUsuarios(DAOUsuario.java:154)

Linha 154 … da uma olhada que q tem lá… debugue seu código… .e verifique qq você esqueceu de carregar/fazer.

Abs

AlessandroGois

Então,
O meu resultset não está nulo, ele tem informações, mas no código está:
Cancelando a referencia de ponteiro nulo. ai abre um editorzinho, ok… mas como pode dizer que está nulo se tem informações?

AlessandroGois

Ah ta, na visão, eu coloquei so a importação do resultset e depois coloquei ele no método, sem nenhum tratamento. Neste momento realmente ele está nulo. Mas eu queria que o DAO o preenchesse.

Que estranho… eu tenho que inicializar de alguma forma entao na visão também?

guivirtuoso

Não entendi nada que tu disse … desculpa…

Mas em resumo seu problema é na linha 154 que está tentando manipular uma referência que está nula.

Sobre quem manipula quem… dê uma lida sobre MVC … vai te ajudar muito.

Cuide com a questão da coesão, sobre as responsabilidades que cada classe tem na sua arquitetura, e procure não infrigir algumas regras básicas de desenvolvimeto, como a sua camada de View acessando direto o Modelo.

Dê uma lida nisto, vai ajudar em algo.

[http://www.devmedia.com.br/entendendo-coesao-e-acoplamento/18538]
(http://www.devmedia.com.br/entendendo-coesao-e-acoplamento/18538)

Boa Sorte e bons estudos.

mauriicio

Acho que esse é o seu problema cara. Tenta inicializar a variável ‘at’ antes de utilizá-la.

AlessandroGois

Opa Mauricio, obrigado :slightly_smiling:

Seguinte,

Eu tento inicializá-la da seguinte forma:

frmCadUsuarios at = new frmCadUsuarios();

mas ai da erro na parte [frmCadUsuarios]

desculpe mesmo por incomodar, é que pra vocês algumas coisas básicas são extremamente complexas pra quem está começando…

É esta forma mesmo que se joga um form para uma variável? Porque como está acima, quando eu digito at. (o netbeans autocomplementa com os metodos, ele está encontrando, mas deve ter algo errado, realmente)

Poderia me ajudar, por favor?

Abraços,

Alessandro.

Criado 20 de janeiro de 2016
Ultima resposta 22 de jan. de 2016
Respostas 8
Participantes 3