public Collection selTypeAll() {
Collection c = new ArrayList();
db_conn.ConnectDB();
ResultSet rs=null;
String sql = "select * from type";

try {

while (rs.next()) {
Type vo = new Type();
vo.setTypeid(rs.getInt(1));
vo.setTypename(rs.getString(2));

c.add(vo);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} return c;
}
连接没有错啊,为什么总是说空指针呢?
错误如下:
java.lang.NullPointerException
at zdw.db.DBType.selTypeAll(DBType.java:120)
at org.apache.jsp.admin.type.addgoodstype_jsp._jspService(addgoodstype_jsp.java:118)
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.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)

解决方案 »

  1.   

    ResultSet rs=null; 
    String sql = "select * from type"; try { 

    while (rs.next()) { 

    说的空应该是rs,没有进行查数据库的操作,就开始读rs了
      

  2.   

    你应该先做数据库操作啊,没结果,怎么来的记录集看下我写的代码 Connection conn = null;
            PreparedStatement ps = null;
           try{
               Class.forName("oracle.jdbc.pool.OracleConnectionPoolDataSource").newInstance();
               String url = "jdbc:oracle:thin:@192.168.0.166:1521:orcl";
               String user = "km";
               String password = "km";
               conn= DriverManager.getConnection(url,user,password);
               String sql = "SELECT * FORM ETIM0022";
               ps = conn.prepareStatement(sql);   
               int i = ps.executeUpdate();
           }catch(Exception e){
               e.printStackTrace();
           }finally{
               try {
                ps.close();
            } catch (SQLException e) {
                // TODO 自動生成された catch ブロック
                e.printStackTrace();
            }
               try {
                conn.close();
            } catch (SQLException e) {
                // TODO 自動生成された catch ブロック
                e.printStackTrace();
            }
           }你缺少红色的那段操作数据库