NullPointException异常?看看conn是不是null

解决方案 »

  1.   

    下面是有问题的源代码:
    import  ...
    public class test {
    Connection conn;
    public Vector getDataKenl(String sql) {
    Vector father = new Vector();
    Vector vecDate = new Vector();
    ResultSet sres = null;        
    Statement stmt;                 
    Boolean opStatus = new Boolean(true);
    try{
    //////////////////////////////////////////
    //有问题的语句
                stmt = conn.createStatement();
    /////////////////////////////////////////      
    sql = new String(sql.getBytes(),"ISO-8859-1");
              sres = stmt.executeQuery(sql);
    vecDate = resultToVector(sres);
    sres.close();
    stmt.close();
    father.addElement(opStatus);
    father.addElement(vecDate); } catch (SQLException ex) {
    opStatus = Boolean.valueOf("false");
    father.addElement(opStatus); father.addElement(Integer.toString(ex.getErrorCode())); System.out.println(ex.toString());
    }catch (UnsupportedEncodingException e) {
    System.out.println(e.toString());
    }
    return father;
      }
    }
      

  2.   

    你没有连数据库,conn是空,
    应该先连接数据库再用stmt = conn.createStatement();
      

  3.   

    链了数据库,但是还是出错import  ...
    public class test {
    Connection conn;
    public Vector getDataKenl(String sql) {
    Vector father = new Vector();
    Vector vecDate = new Vector();
    ResultSet sres = null;        
    Statement stmt;                 
    Boolean opStatus = new Boolean(true);
                      //连接数据库后,conn 为空值
                      conn = DbConnectionPool.getAConnection();
    try{
    //////////////////////////////////////////
    //有问题的语句
                stmt = conn.createStatement();
    /////////////////////////////////////////      
    sql = new String(sql.getBytes(),"ISO-8859-1");
              sres = stmt.executeQuery(sql);
    vecDate = resultToVector(sres);
    sres.close();
    stmt.close();
    father.addElement(opStatus);
    father.addElement(vecDate); } catch (SQLException ex) {
    opStatus = Boolean.valueOf("false");
    father.addElement(opStatus); father.addElement(Integer.toString(ex.getErrorCode())); System.out.println(ex.toString());
    }catch (UnsupportedEncodingException e) {
    System.out.println(e.toString());
    }
    return father;
      }
    }
      

  4.   

    连接数据库的可能就有问题,conn是空值就是没有连正确.
      

  5.   

    你在DataBase Pilot配数据库驱动程序没有?
      

  6.   

    判断一下conn是否是null吧。
    另:把错误信息也贴出来
      

  7.   

    根本错误-1: nulljava.lang.NullPointerException
    java.lang.Throwable()
    java.lang.Exception()
    java.lang.RuntimeException()
    java.lang.NullPointerException()
    java.util.Vector com.cbe.base.DBQuery.getDataKenl(java.lang.String)
    java.util.Vector com.cbe.base.DBQuery.getDataKenl(java.lang.String)
    java.util.Vector com.cbe.base.DBQuery.getData(java.lang.String)
    void upgrade.ROOT._login_xjsp._jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    void com.sun.jsp.runtime.HttpJspBase.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
    void com.sun.jsp.runtime.JspServlet$JspServletWrapper.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    void com.ibm.ivj.jsp.runtime.JspDebugServlet.serviceJspFile(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.Throwable)
    void com.sun.jsp.runtime.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
    void com.ibm.servlet.engine.webapp.StrictServletInstance.doService(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
    void com.ibm.servlet.engine.webapp.StrictLifecycleServlet._service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
    void com.ibm.servlet.engine.webapp.IdleServletState.service(com.ibm.servlet.engine.webapp.StrictLifecycleServlet, javax.servlet.ServletRequest, javax.servlet.ServletResponse)
    void com.ibm.servlet.engine.webapp.StrictLifecycleServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
    void com.ibm.servlet.engine.webapp.ServletInstance.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse, com.ibm.servlet.engine.webapp.WebAppServletInvocationEvent)
    void com.ibm.servlet.engine.webapp.ValidServletReferenceState.dispatch(com.ibm.servlet.engine.webapp.ServletInstanceReference, javax.servlet.ServletRequest, javax.servlet.ServletResponse, com.ibm.servlet.engine.webapp.WebAppServletInvocationEvent)
    void com.ibm.servlet.engine.webapp.ServletInstanceReference.dispatch(javax.servlet.ServletRequest, javax.servlet.ServletResponse, com.ibm.servlet.engine.webapp.WebAppServletInvocationEvent)
    void com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.handleWebAppDispatch(com.ibm.servlet.engine.webapp.WebAppRequest, javax.servlet.http.HttpServletResponse, boolean)
    void com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.dispatch(javax.servlet.ServletRequest, javax.servlet.ServletResponse, boolean)
    void com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
    void com.ibm.servlet.engine.srt.WebAppInvoker.handleInvocationHook(java.lang.Object)
    void com.ibm.servlet.engine.invocation.CachedInvocation.handleInvocation(java.lang.Object)
    void com.ibm.servlet.engine.srp.ServletRequestProcessor.dispatchByURI(java.lang.String, com.ibm.servlet.engine.srp.ISRPConnection)
    void com.ibm.servlet.engine.oselistener.OSEListenerDispatcher.service(com.ibm.servlet.engine.oselistener.api.IOSEConnection)
    void com.ibm.servlet.engine.http_transport.HttpTransportHandler.handleConnection(java.net.Socket)
    void com.ibm.servlet.engine.http_transport.HttpTransportHandler.run()
    void java.lang.Thread.run()
      

  8.   

    java.lang.NullPointerException
    java.lang.Throwable()
    java.lang.Exception()
    java.lang.RuntimeException()
    java.lang.NullPointerException()
    java.util.Vector com.cbe.base.DBQuery.getDataKenl(java.lang.String)
    java.util.Vector com.cbe.base.DBQuery.getDataKenl(java.lang.String)
    java.util.Vector com.cbe.base.DBQuery.getData(java.lang.String)
      

  9.   

    将conn定义成类的成员变量是不合适的, 最好定义在方法中,最后用完后在finally中将它关闭。
      

  10.   

    DbConnectionPool.getAConnection()
    这个能不能连到数据库呢?你有没有测试过。
      

  11.   

    Connection conn=DriverManager.getConnection(sConnStr);
    我这里SConnStr是数据库源,例如
    String sConnStr="jdbc:odbc:xing";你只是创建Connection对象,但不赋值怎么行