<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    布衣王子

    Email:roose2008@gmail.com QQ:79212131

    NullPointerException 錯誤耗費我一天了時間了,今天又耗了半天了

    java.lang.NullPointerException
    在網(wǎng)上找了很久,也有很多相關(guān)的貼。大都多說是引用的對象為空,但在程序里我測試過了。rs對象并不為空。但是每當調(diào)用rs.getxx..(String ....)方法是就出現(xiàn)java.lang.NullPointerException
    異常。也有人說是數(shù)據(jù)庫里不存在root字段,但在我的數(shù)據(jù)庫里我檢查過好多次了。現(xiàn)在真不知道如何是好了。我也懷疑過是不是rs的作用域問題。但還是沒什么結(jié)果。
    希望高手能幫幫忙。在這里謝謝了。
    甚至我懷疑過是不是沒一個Statement職能唯一返回一個RsRsult對象。定義了兩個Staement.但是,郁悶的是當?shù)诙握{(diào)用get.xxx()方法時又出現(xiàn)java.lang.NullPointerException.哎。。。。

    <%--2008.10.1 ZiGong--%>

    <%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
    <%@ page import = "java.sql.*" %>
    <%@ page import = "java.lang.*" %>

    <%---------------------------method delete-----------------------------%>
    <%!private void delete(Connection conn, int id) {
        Statement stat = null;
        ResultSet rs = null;
        int deleteid = 0;
        try {
            stat = conn.createStatement();
            rs = stat.executeQuery("select * from bbsrecord where sid=" + id);
            while (rs.next()) {
                deleteid = rs.getInt("id");
                if (rs.getInt("leaf") == 0) {
                    stat.execute("delete from bbsrecord where id =" + deleteid);
                    delete(conn, deleteid);
                } else {
                    stat.execute("delete from bbsrecord where id =" + deleteid);
                }
            }
        } catch (SQLException e) {
            System.out.println("SQL erro!");
        } finally {
            try {
                rs.close();
                stat.close();
            } catch (SQLException e) {
                System.out.println(":sqlexception:can not close");
            }
        }
    }
    %>
    <%--------------------------the delete.jsp'start------------------------%>
    <%
                int id = Integer.parseInt(request.getParameter("id"));
                int sid = 0;
                Class.forName("java.sql.Driver");
                Connection conn = null;
                Statement stat = null;
                String urlstring = "jdbc:mysql://127.0.0.1:3306/test?user=root&password=159753";
                conn = DriverManager.getConnection(urlstring);
                stat = conn.createStatement();     
             try {
                    ResultSet rs = stat.executeQuery("select * from BbsRecord where id=" + id);
                    rs.next();
                    sid = rs.getInt("sid");
                    ResultSet rss = stat.executeQuery("select * from bbsrecord where sid=" + sid);
                    rss.last();
                   
                    if (rss.getRow() == 1) {
                        if (rs.getInt("root") == 0) {  //錯誤報告指示的是這里,但我不理解,也找不到原因。
                            stat.execute("update bbsrecord set leaf = 1 where id=" + sid);
                            stat.execute("delete from bbsrecord where id =" + id);
                            if (rs.getInt("leaf") == 0) {
                                delete(conn,id);
                            }
                        }
                    } else {
                        stat.execute("delete from bbsrecord where id =" + id);
                        if (rs.getInt("leaf") == 0) {
                            delete(conn, id);
                        }
                    }
                    rs.close();
                    rss.close();
                } catch (SQLException e) {
                    System.out.println("sql異常");
                } finally {

                    stat.close();
                    conn.close();
                }
    %>
    <%----------------------------- html ---------------------------------%>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=gbk">
            <title>數(shù)據(jù)的樹型展現(xiàn)</title>
        </head>
        <body>
            <center>
                <h2><%="deleting record is succeed"%>
                <%//response.sendRedirect("showtree.jsp");%></h2>
            </center>
        </body>
    </html>

    錯誤報告

    HTTP Status 500 -


    type Exception report

    message

    description The server encountered an internal error () that prevented it from fulfilling this request.

    exception

    org.apache.jasper.JasperException: java.lang.NullPointerException
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    

     

    root cause

    java.lang.NullPointerException
    com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1059)
    com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2719)
    org.apache.jsp.delete_jsp._jspService(delete_jsp.java:110)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    

     

    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.



    posted on 2008-10-03 00:16 草包書生 閱讀(4541) 評論(20)  編輯  收藏

    評論

    # re: NullPointerException 錯誤耗費我一天時間了 2008-10-03 00:56 blackbat

    不會把 居然有這種事情
    rs.getInt("root") 換成rs.getInt(1) 就是對應(yīng)的列的序號。
      回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天時間了[未登錄] 2008-10-03 03:02 tony

    沒找到列名為"root"的列,因此拋出錯誤  回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天時間了 2008-10-03 03:36 草包書生

    @blackbat
    老大,我換了。但還是出錯,而且還是這里 if (rs.getInt("root") == 0)   回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天時間了 2008-10-03 03:38 草包書生

    @草包書生
    無論是使用 rs.getInt(int xxxx)還是rs.getInt(String xxxx)都是一樣的效果啊。
    我數(shù)據(jù)庫里的確有root字段,而且數(shù)據(jù)類型也是int型。  回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天時間了 2008-10-03 03:40 草包書生

    在mysql數(shù)據(jù)庫里,整形數(shù)據(jù) int 若值為0 的話,mysql將把該值視為空嗎?  回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天時間了 2008-10-03 03:42 草包書生

    各位好心人,都來幫幫忙啊?急啊!  回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天時間了 2008-10-03 03:43 隔葉黃鶯

    何不輸出來看看,它長什么樣呢?  回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天時間了 2008-10-03 03:48 草包書生

    你是說把rs對象的描述輸出來么?  回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天時間了 2008-10-03 03:57 草包書生

    我把rs打印出來,出了類名之外,沒有任何信息。
    你們快點來 啊。我快虛脫了  回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天時間了 2008-10-03 04:37 Rene

    rs.getString(String xxxx)  回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天時間了 2008-10-03 07:52 steveneo

    I almost forget JDBC stuff. But some hints:
    Check rs.getInt() return object "Integer" or primary type "int". If former one, rs.getInt() == 0 could throw nullpoint, as JDK5 will do automatically conversion from "Integer" to "int". if Integer is null, here will throw NullPointerExp.

    Btw, check database table, column "root" must has some int value, such as 0, rather than "null"
    Good luck.  回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天時間了 2008-10-03 08:41 wanbing1986

    哎,把那個空的rs.getString("root")打印出來看下是不是空值.

    上面的人英語太厲害了,是不是中國人哦.  回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天時間了 2008-10-03 10:39 隔葉黃鶯

    如果這點基本的除錯技能都沒有,這個耗你一天,那個耗你若干天,你還要不要做開發(fā)了呢?  回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天時間了 2008-10-03 10:59 Lvyuanfang

    查看root列的所有值,是不是有null的。首先要搞清楚ResultSet為空,還是rs.getInt() 為空。樓主好好看看,空指針異常都是寫代碼不嚴謹導(dǎo)致。。  回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天時間了 2008-10-03 12:49 草包書生

    問題還沒解決:
    org.apache.jasper.JasperException: An exception occurred processing JSP page /delete.jsp at line 53

    50: sid = rs.getInt("sid");
    51: ResultSet rss = stat.executeQuery("select * from bbsrecord where sid=" + sid);
    52: rss.last();
    53: out.println(rs.getString("title"));
    54: /**
    55: if (rss.getRow() == 1) {
    56: if (rs.getInt("root") == 0) {

    為什么前面的sid = rs.getInt("sid");能執(zhí)行不會拋出異常,到第二次調(diào)用getString()時就拋出異常了?
    在第一次調(diào)用sid = rs.getInt("sid");后我用
    if(rs != null){
    out.println("rs is not null");
    }
    結(jié)果為
    rs is not null
    也就是,rs并不為空。
    這是怎么回事?難道是mysql數(shù)據(jù)庫軟件本身的問題?嗎?

      回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天了時間了,今天又耗了半天了 2008-10-03 12:52 草包書生

    @隔葉黃鶯
    org.apache.jasper.JasperException: An exception occurred processing JSP page /delete.jsp at line 53

    50: sid = rs.getInt("sid");
    51: ResultSet rss = stat.executeQuery("select * from bbsrecord where sid=" + sid);
    52: rss.last();
    53: out.println(rs.getString("title"));
    54: /**
    55: if (rss.getRow() == 1) {
    56: if (rs.getInt("root") == 0) {

    為什么前面的sid = rs.getInt("sid");能執(zhí)行不會拋出異常,到第二次調(diào)用getString()時就拋出異常了?
    在第一次調(diào)用sid = rs.getInt("sid");后我用
    if(rs != null){
    out.println("rs is not null");
    }
    結(jié)果為
    rs is not null
    也就是,rs并不為空。
    這是怎么回事?難道是mysql數(shù)據(jù)庫軟件本身的問題?嗎?
      回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天了時間了,今天又耗了半天了 2008-10-03 12:52 草包書生

    @steveneo
    org.apache.jasper.JasperException: An exception occurred processing JSP page /delete.jsp at line 53

    50: sid = rs.getInt("sid");
    51: ResultSet rss = stat.executeQuery("select * from bbsrecord where sid=" + sid);
    52: rss.last();
    53: out.println(rs.getString("title"));
    54: /**
    55: if (rss.getRow() == 1) {
    56: if (rs.getInt("root") == 0) {

    為什么前面的sid = rs.getInt("sid");能執(zhí)行不會拋出異常,到第二次調(diào)用getString()時就拋出異常了?
    在第一次調(diào)用sid = rs.getInt("sid");后我用
    if(rs != null){
    out.println("rs is not null");
    }
    結(jié)果為
    rs is not null
    也就是,rs并不為空。
    這是怎么回事?難道是mysql數(shù)據(jù)庫軟件本身的問題?嗎?
      回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天了時間了,今天又耗了半天了 2008-10-03 12:55 草包書生

    更奇怪的是第一次調(diào)用sid = rs.getInt("sid");能通過
    馬上第而次sid = rs.getInt("sid");就出現(xiàn)異常了,難道有鬼啊
      回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天了時間了,今天又耗了半天了 2008-10-03 14:06 草包書生

    啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊。。。。。。。。。。
    問題解決了!原來是。。。。!多個ResultSet不能共享同一個Statement。
    基礎(chǔ)知識欠缺啊!在jdkAPI中sun公司有沒說明這一點。真是庫了我。
    還好功夫不負有心人。謝謝javablog的兄弟了。再次感謝!
    努力,堅持就是勝利!

    哎,基礎(chǔ)不扎實。
    整一個悲字了得。  回復(fù)  更多評論   

    # re: NullPointerException 錯誤耗費我一天了時間了,今天又耗了半天了 2008-12-30 13:26 北京時間

    你是說把rs對象的描述輸出來么?  回復(fù)  更多評論   


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    常用鏈接

    相冊

    java的相關(guān)連接

    最新評論

    主站蜘蛛池模板: 国产小视频在线免费| 亚洲高清免费在线观看| 日韩一级视频免费观看| 亚洲综合校园春色| 一二三四免费观看在线电影| 亚洲精品成人久久| 成人在线免费看片| 亚洲精品国产精品国自产网站| 67194熟妇在线永久免费观看| 亚洲一区二区三区无码国产| 日本精品人妻无码免费大全| 亚洲色中文字幕在线播放| 波多野结衣久久高清免费| 亚洲av无码成人精品区一本二本 | 午夜亚洲国产理论秋霞| 男人j进入女人j内部免费网站| 亚洲a一级免费视频| 嘿嘿嘿视频免费网站在线观看| 亚洲人成网国产最新在线| 成年人网站在线免费观看| 国产精品亚洲片在线花蝴蝶| 亚洲视频一区调教| 亚洲国产人成在线观看69网站| 亚洲伊人久久精品| 免费毛片在线播放| 亚洲日韩在线观看免费视频| 亚洲va国产va天堂va久久| 免费99精品国产自在现线| 亚洲Av永久无码精品黑人| 又黄又爽一线毛片免费观看| 你懂的网址免费国产| 亚洲国产综合在线| 亚洲成?v人片天堂网无码| 免费国产在线视频| 亚洲熟妇久久精品| 亚洲愉拍99热成人精品热久久| xxxx日本免费| a高清免费毛片久久| 亚洲国产日产无码精品| 亚洲VA综合VA国产产VA中| 99爱免费观看视频在线|