我用NetBeans了一个通讯录
当我点击通讯录界面查找按钮时,提示init:
deps-jar:
compile:
run:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
以下代码是我的查找按钮的事件处理方法private void selection(java.awt.event.ActionEvent evt) {                           
       String Sname=name.getText();
       
       
      
       try{
           Connection n=DBconnection.conect();
           Statement s=n.createStatement();
            
            ResultSet r=s.executeQuery("selecte * from table where name='+Sname+' ");
           if(r.next())
           {
            
           
           String Sphone=r.getString("phone_number");
           String Smoble=r.getString("moble_number"); 
           moble.setText(Smoble);
           phone.setText(Sphone);
            
           }
           else
           {
               JOptionPane.showMessageDialog(null,"没有此人");
           }
       }
         catch(SQLException ee)
         {
             JOptionPane.showMessageDialog(null,ee.getMessage());
         }
       
       
       
    } 
初学者请各位多多指教,谢谢                         
         

解决方案 »

  1.   

               if(r.next()) // 这里有可能出错, 因为只有r.hasNext()为true后才使用r.next().
               {
                
               
               String Sphone=r.getString("phone_number");
               String Smoble=r.getString("moble_number"); 
               moble.setText(Smoble);
               phone.setText(Sphone);
                
               }
      

  2.   

    提示错误的地方应该是 
          Statement s=n.createStatement(); 
    这句;可能是你连接数据库不成功导致,你可以在加载驱动的代码处加一句System.out.println("add driver successful");
    看看运行的时候有没有打印这一句
    如果还不行的话你把整个连接数据库的过程的代码给发出来看看
      

  3.   

    ResultSet r=s.executeQuery("selecte * from table where name='+Sname+' "); 这句好象也错了,改成
    ResultSet r=s.executeQuery("selecte * from table where name="+"'"+Sname+"'"); 
      

  4.   


    r.next()是可以的,数据库取回来的结果集都是这样操作的吧,当然多个的话用while。NetBeans在提示空指针异常的时候,没提示是那一行代码抛出的吗?应该有的吧,如果没有,换eclips吧(不是广告)。还有在使用一个有可能会是空的变量之前,最好明确判断一下它是不是为空,我也有这个问题,常常很多地方都没处理,这是不好的习惯啊。以上仅供你参考。
      

  5.   

    搞明白了,我的数据库的驱动有问题,更新了sp4补丁就OK了