我用SWING做的管理系统,添加记录时抛出了空指针异常,
请再告诉我犯了啥错误啊??
原代码 如下: public void storebasic(Record record) throws Exception {
 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
  con=DriverManager.getConnection(url,"sa","");
  stm=con.createStatement();
  String sql="select * from student_information where id='"+record.getid()+"'";
  stm.executeQuery(sql);
  if(rs.next()){
  sql="update student_information set id='"+record.getid()+"', "+"" +
   " name='"+record.getname()+"', "+" age='"+record.getage()+"', "+" " +
   "sex='"+record.getsex()+"', "+" brithday='"+record.getbrithday()+"', " +
   ""+" number='"+record.getnumber()+"', "+" path='"+record.getpath()+"', " +
   ""+" type='"+record.gettype()+"'";
  stm.executeUpdate(sql);
 
  }
 
  else{
  sql="insert student_information(id,name,age,sex,brithday,number,path,type)"+"" +
   "values('"+record.getid()+"', '"+record.getname()+"','"+record.getage()+"'," +
   "'"+record.getsex()+"', '"+record.getbrithday()+"'," +
   "'"+record.getnumber()+"', '"+record.getnumber()+"', " +
   "'"+record.gettype()+"')";
  stm.executeUpdate(sql);
  
  
  }
  rs.close();
  stm.close();
  con.close();

}

解决方案 »

  1.   

    stm.executeQuery(sql);
          if(rs.next()){
            。。写成 
       rs =  stm.executeQuery(sql);
       然后再作下面的。
    我估计你就是这个地方异常
      

  2.   

    rs.close();
    stm.close();
    con.close();
    这些东西最好写在
    try {
    .....
    } catch {
    .....
    } finally {
    rs.close();
    stm.close();
    con.close();}
      

  3.   

    public void storebasic(Record record) throws Exception {
     Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    //没有url
       String url="jdbc:microsoft:sqlserver://localhost:1433;databasename=pubs";    con=DriverManager.getConnection(url,"sa","");
      stm=con.createStatement();
      String sql="select * from student_information where id='"+record.getid()+"'";
    //没有定义rs
      ResultSet rs=stm.executeQuery(sql);
                      sql="";   if(rs.next()){
      sql="update student_information set id='"+record.getid()+"', "+"" +
       " name='"+record.getname()+"', "+" age='"+record.getage()+"', "+" " +
       "sex='"+record.getsex()+"', "+" brithday='"+record.getbrithday()+"', " +
       ""+" number='"+record.getnumber()+"', "+" path='"+record.getpath()+"', " +
       ""+" type='"+record.gettype()+"'";
      stm.executeUpdate(sql);
     
      }
     
      else{
      sql="insert student_information(id,name,age,sex,brithday,number,path,type)"+"" +
       "values('"+record.getid()+"', '"+record.getname()+"','"+record.getage()+"'," +
       "'"+record.getsex()+"', '"+record.getbrithday()+"'," +
       "'"+record.getnumber()+"', '"+record.getnumber()+"', " +
       "'"+record.gettype()+"')";
      stm.executeUpdate(sql);
      
      
      }
      rs.close();
      stm.close();
      con.close();

    }
      

  4.   

    呵呵 
    URL在类变量里定义了啊!!
    感谢2楼的啊!!
    晕的很  写程序老是粗心的啊