| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1240 人关注过本帖
标题:关于数据库链接 返回NullPointerException的问题
取消只看楼主 加入收藏
liveno
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-4-16
收藏
 问题点数:0 回复次数:1 
关于数据库链接 返回NullPointerException的问题
try{
                query="select * from product where product_ID="+product_ID;
                rs=dbcon.query(query);
                if(rs==null){   
                        session.setAttribute("product_exist","false");
                }
                else{
                    while(rs.next()){
                        session.setAttribute("product_price",rs.getString("product_price"));
                        session.setAttribute("product_producer",rs.getString("product_producer"));
                        session.setAttribute("product_name",rs.getString("product_name"));
                    }
                }
                dbcon.close();
            }
            catch(SQLException   e){
                System.out.println("err:"+e.getMessage());
            }
主要的代码段就在这里了。
是去查询product中的商品,由于数据库中只有ID=1的项目,所以如果是查询1的话,是能够得到正确结果的。
可是当查询ID=2的商品时,rs应该返回一个空集吧?if(rs==null)这个是判断是否得到了一个查询集合,和空集不一样的。不管怎么说,NullPointerException这个错误是怎么出现的呢?
还请高手指教
搜索更多相关主题的帖子: product 数据库 session setAttribute 
2008-04-16 18:17
liveno
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-4-16
收藏
得分:0 
回复 6# 的帖子
谢谢netstriker和菜鸟也疯狂的回复。o(∩_∩)o

如netstriker你所说,我正是想通过判断rs是否是个空集合来觉得决定程序流程。可是该怎么判断呢?我试图将程序改成:
try{
                query="select count(*) from product where product_ID="+product_ID;
                rs=dbcon.query(query);
                if(rs.getInt(1)==0){   
                        session.setAttribute("product_exist","false");
                }
                else{
                query="select count * from product where product_ID="+product_ID;
                rs=dbcon.query(query);
                    while(rs.next()){
                        session.setAttribute("product_price",rs.getString("product_price"));
                        session.setAttribute("product_producer",rs.getString("product_producer"));

程序却出现了错误,连ID=1时的情况也出现了NullPointer的错误,是怎么回事呢?

我不能理解的是,当ID=1的时候是完全正确的结果,这应该说明我的sql语句是没有问题的吧?所以当ID=2而查询数据为空时,得到的rs应该是个空集(确实不是null),而while(rs.next())首先是判断rs.next()是否是null,但跟rs是否为null是完全两回事啊?我之所以用if(rs==null),就是为了表示rs是不为null的。这样说来,nullpointer这个错是哪里冒出来的呢?
2008-04-21 16:12
快速回复:关于数据库链接 返回NullPointerException的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016901 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved