Erro em busca no banco! AJUDA!

7 respostas
marceloluz

Olá pessoal, estou tendo um erro quando vou fazer a busca no banco, esta dando um nullpointerexception na linha da variável pstmt!
Alguem tem alguma sugestão??
Estou rachando a cabeça aqui, mas nao consigo resolver.

public static ArrayList<Evento> getAll( ) {


        String query="SELECT * FROM evento ";

        try {
            ArrayList<Evento> listAll = null;


            pstmt = (PreparedStatement) Conexao.getConnection().prepareStatement(query);  // [b]<<-----NULL POINTER EXCEPTION!!!!!!! [/b]
            rs = pstmt.executeQuery();

            if (rs.next()) {

              
                do {
           Evento evento = new Evento();
           evento.setIdevento(rs.getString("idevento"));
           evento.setAtivo(rs.getString("ativo"));
           evento.setData(rs.getString("data"));
           evento.setDescricao(rs.getString("descricao"));
           evento.setFlyer(rs.getString("flyer"));
           evento.setResenha(rs.getString("resenha"));
           evento.setThumb(rs.getString("thumb"));
          listAll.add(evento);

                } while (rs.next());
            }
            rs.close();
            pstmt.close();

            return listAll;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
[size=18]Eu tenho um método praticamente igual sendo utilizado no meu programa, na mesma classe que funciona perfeitamente... Segue abaixo a classe:[/size]
package model;

import beans.Evento;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

/**
 *
 * @author Marcelo
 */
public class EventoDAO {

    private static PreparedStatement pstmt = null;
    private static ResultSet rs = null;
     
    

      public static boolean create(Evento evento) {
        try {

            pstmt = (PreparedStatement) Conexao.getConnection().prepareStatement(
                    "INSERT INTO evento(descricao, data, thumb, flyer, resenha, ativo) VALUES(?,?,?,?,?,?)"
            );
            pstmt.setString(1, evento.getDescricao());
            pstmt.setString(2, evento.getData());
            pstmt.setString(3, evento.getThumb());
            pstmt.setString(4, evento.getFlyer());
            pstmt.setString(5, evento.getResenha());
            pstmt.setString(6, evento.getAtivo());

            pstmt.executeUpdate();
            pstmt.close();
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }




    public static ArrayList<Evento> getAll( ) {


        String query="SELECT * FROM evento ";

        try {
            ArrayList<Evento> listAll = null;


            pstmt = (PreparedStatement) Conexao.getConnection().prepareStatement(query);
            rs = pstmt.executeQuery();

            if (rs.next()) {

                 
                do {
           Evento evento = new Evento();
           evento.setIdevento(rs.getString("idevento"));
           evento.setAtivo(rs.getString("ativo"));
           evento.setData(rs.getString("data"));
           evento.setDescricao(rs.getString("descricao"));
           evento.setFlyer(rs.getString("flyer"));
           evento.setResenha(rs.getString("resenha"));
           evento.setThumb(rs.getString("thumb"));
          listAll.add(evento);

                } while (rs.next());
            }
            rs.close();
            pstmt.close();

            return listAll;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }




}

7 Respostas

mario.fts

Utilize as tags [ Code ] para postar código, para faciltar a leitura.

vc tem certeza que é o pstm que está null? não seria a connection? separa as coiasas pra vc poder ver melhor:

Connection conn = Conexao.getConnection();
PreparedStatment pstmt = conn.prepareStatement(query);

muda, e testa de novo. se o erro for mesmo no pstmt, vc volta e posta a stacktrace aqui pra gente ver.

[]'s

marceloluz

Oi mario!
o erro é no pstmt mesmo!
O que eu acho estranho é que um codigo praticamente igual nao apresenta erro nenhum, eu ja estou usando este modelinho ha mto tempo...tens alguma ideia?

Agradeço a todos desde já!

java.lang.NullPointerException
        at model.EventoDAO.getAll(EventoDAO.java:55)
        at org.apache.jsp.central_005fcontent_005fnotlogged_jsp._jspService(central_005fcontent_005fnotlogged_jsp.java:85)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:535)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:472)
        at org.apache.taglibs.standard.tag.common.core.ImportSupport.acquireString(ImportSupport.java:296)
        at org.apache.taglibs.standard.tag.common.core.ImportSupport.doEndTag(ImportSupport.java:161)
        at org.apache.jsp.entrada_jsp._jspx_meth_c_005fimport_005f2(entrada_jsp.java:249)
        at org.apache.jsp.entrada_jsp._jspService(entrada_jsp.java:137)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)
mario.fts

pq q vc faz cast pra PreparedStatment?

essa connection retornada não é a padrão do java?

G

Por acaso tu fez uma classe singleton pra pegar a conexao e pegar o prepared tb?

marceloluz

nao usei singleton, e o prepared foi o netbeans que botou, depois de eu ja ter feito um mte de mudanças, mas tambem nao funciona sem o cast.
Alguem tem alguma ideia?
abss!!!

mario.fts

posta essa connection factory ai. tem algo estranho ai

marceloluz

pessoal resolvi aqui!
Valeu!

Criado 21 de dezembro de 2009
Ultima resposta 21 de dez. de 2009
Respostas 7
Participantes 3