<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
    在網上找了很久,也有很多相關的貼。大都多說是引用的對象為空,但在程序里我測試過了。rs對象并不為空。但是每當調用rs.getxx..(String ....)方法是就出現java.lang.NullPointerException
    異常。也有人說是數據庫里不存在root字段,但在我的數據庫里我檢查過好多次了?,F在真不知道如何是好了。我也懷疑過是不是rs的作用域問題。但還是沒什么結果。
    希望高手能幫幫忙。在這里謝謝了。
    甚至我懷疑過是不是沒一個Statement職能唯一返回一個RsRsult對象。定義了兩個Staement.但是,郁悶的是當第二次調用get.xxx()方法時又出現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>數據的樹型展現</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 草包書生 閱讀(4550) 評論(20)  編輯  收藏

    評論

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

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

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

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

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

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

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

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

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

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

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

    各位好心人,都來幫幫忙啊?急?。?nbsp; 回復  更多評論   

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

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

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

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

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

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

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

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

    # 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.  回復  更多評論   

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

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

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

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

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

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

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

    # 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");能執行不會拋出異常,到第二次調用getString()時就拋出異常了?
    在第一次調用sid = rs.getInt("sid");后我用
    if(rs != null){
    out.println("rs is not null");
    }
    結果為
    rs is not null
    也就是,rs并不為空。
    這是怎么回事?難道是mysql數據庫軟件本身的問題?嗎?

      回復  更多評論   

    # 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");能執行不會拋出異常,到第二次調用getString()時就拋出異常了?
    在第一次調用sid = rs.getInt("sid");后我用
    if(rs != null){
    out.println("rs is not null");
    }
    結果為
    rs is not null
    也就是,rs并不為空。
    這是怎么回事?難道是mysql數據庫軟件本身的問題?嗎?
      回復  更多評論   

    # 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");能執行不會拋出異常,到第二次調用getString()時就拋出異常了?
    在第一次調用sid = rs.getInt("sid");后我用
    if(rs != null){
    out.println("rs is not null");
    }
    結果為
    rs is not null
    也就是,rs并不為空。
    這是怎么回事?難道是mysql數據庫軟件本身的問題?嗎?
      回復  更多評論   

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

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

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

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

    哎,基礎不扎實。
    整一個悲字了得。  回復  更多評論   

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

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


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


    網站導航:
     

    導航

    常用鏈接

    相冊

    java的相關連接

    最新評論

    主站蜘蛛池模板: 亚洲精品无码不卡在线播放| 18禁成年无码免费网站无遮挡| 免费一级毛片女人图片| 亚洲人成网站在线在线观看| 最近高清中文字幕无吗免费看| 亚洲午夜成激人情在线影院| 91成人免费观看| 中文字幕成人免费视频| 亚洲美女激情视频| 在线精品一卡乱码免费| 久久亚洲精品国产亚洲老地址| 无码专区永久免费AV网站| 亚洲精品无码aⅴ中文字幕蜜桃| 午夜一级免费视频| 免费播放美女一级毛片| 超清首页国产亚洲丝袜| 久久精品国产免费一区| 亚洲春色在线观看| 成人免费在线视频| 一级黄色免费网站| 亚洲免费视频在线观看| 国产精品免费观看久久| 黄网站色成年片大免费高清| 亚洲中文字幕久久精品无码喷水| 精品一区二区三区免费| 亚洲乱码一二三四五六区| 国产精品国产免费无码专区不卡 | 免费大片在线观看网站| 一级做a爰片性色毛片免费网站 | 亚洲福利视频一区二区| AAA日本高清在线播放免费观看| 亚洲五月激情综合图片区| 女人18毛片特级一级免费视频| 免费无毒a网站在线观看| 亚洲成AV人在线播放无码| 99久久免费国产精品特黄| 一级一片免费视频播放| 亚洲精品在线不卡| 亚洲成A∨人片天堂网无码| 最近中文字幕高清免费中文字幕mv| 亚洲综合欧美色五月俺也去 |