Erro ao consultar um valor na tabela do BD [RESOLVIDO]

1. Erro ao consultar um valor na tabela do BD [RESOLVIDO]

Tales Eri Born
talesborn

(usa Ubuntu)

Enviado em 30/05/2013 - 10:24h

Olá pessoal, estou com um problema. Estou fazendo um sistema de datilografia para a escola de informática onde trabalho, na verdade estou desenvolvendo outro para atualizar.

Quando tento fazer a consulta no BD, com um valor que esteja cadastrado não acontece nada, por exemplo, tenho no banco um usuário com o nome de "talesborn", se na tela de login, quando eu digito esse usuário ele efetua o login, agora quando eu digito um usuário que não tenho no BD ele jogas esses erros:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at TelaLogin.bentrarActionPerformed(TelaLogin.java:204)
at TelaLogin.access$200(TelaLogin.java:21)
at TelaLogin$2.actionPerformed(TelaLogin.java:127)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:696)
at java.awt.EventQueue$4.run(EventQueue.java:694)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

Criei um método para consultar só o Usuário e a Senha no BD:

public void consultar(){
ConDesc.conecta();
try {
ConDesc.stm = ConDesc.con.createStatement();
String SQL = "SELECT * FROM Usuarios WHERE NomeUsuario='" + usuario + "'";
ConDesc.rs = ConDesc.stm.executeQuery(SQL);
if (ConDesc.rs.next()) {
usuario = String.valueOf(ConDesc.rs.getObject("NomeUsuario"));
senha = String.valueOf(ConDesc.rs.getObject("Senha"));
}
} catch (Exception e) {
System.out.println(e);
}
ConDesc.desconecta();
}


  


2. Re: Erro ao consultar um valor na tabela do BD [RESOLVIDO]

Bruno Rogério Fernandes
brunorf

(usa Arch Linux)

Enviado em 30/05/2013 - 10:50h

Olhando seu código, suspeito que o problema seja com as variáveis usuario e senha, pois você só atribui um valor a elas no caso de ter encontrado um usuário válido (if (ConDesc.rs.next()) ). Faça um teste e inicialize essas variáveis com uma string vazia antes do try/catch.

Observe a documentação do método next:
http://docs.oracle.com/javase/1.4.2/docs/api/java/sql/ResultSet.html#next%28%29






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts