<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 草包書生 閱讀(4540) 評論(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 草包書生

    各位好心人,都來幫幫忙???急??!  回復  更多評論   

    # 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。
    基礎知識欠缺啊!在jdkAPI中sun公司有沒說明這一點。真是庫了我。
    還好功夫不負有心人。謝謝javablog的兄弟了。再次感謝!
    努力,堅持就是勝利!

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

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

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


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


    網站導航:
     

    導航

    常用鏈接

    相冊

    java的相關連接

    最新評論

    主站蜘蛛池模板: www成人免费观看网站| 伊人久久亚洲综合影院首页| 国产亚洲精品美女| 曰批全过程免费视频在线观看| 亚洲国产人成在线观看69网站| 国产一区二区免费| 亚洲高清在线观看| 无码精品国产一区二区三区免费 | 亚洲美女在线观看播放| 91久久精品国产免费一区| 久热综合在线亚洲精品| 99久久免费精品高清特色大片| 亚洲国产精品无码av| 久久免费高清视频| 亚洲美女视频免费| 岛国av无码免费无禁网站| 欧美色欧美亚洲另类二区| 免费看国产曰批40分钟| 国产裸体美女永久免费无遮挡| 亚洲熟妇av一区二区三区漫画| 光棍天堂免费手机观看在线观看| 亚洲国产精品无码专区影院| 香蕉成人免费看片视频app下载| 亚洲国产精品综合久久2007| 免费被黄网站在观看| 又大又硬又粗又黄的视频免费看| 亚洲欧洲无码AV电影在线观看| 91久久精品国产免费一区| 亚洲第一综合天堂另类专| 亚洲Av无码国产情品久久| 男女午夜24式免费视频| 亚洲大香伊人蕉在人依线| 国产禁女女网站免费看| 99热在线日韩精品免费| 亚洲午夜一区二区电影院| 国产免费小视频在线观看| 嫩草在线视频www免费看| 亚洲二区在线视频| 亚洲精品国产日韩无码AV永久免费网| 精品亚洲永久免费精品| 久久夜色精品国产噜噜亚洲a|