我用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();
}
请再告诉我犯了啥错误啊??
原代码 如下: 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();
}
if(rs.next()){
。。写成
rs = stm.executeQuery(sql);
然后再作下面的。
我估计你就是这个地方异常
stm.close();
con.close();
这些东西最好写在
try {
.....
} catch {
.....
} finally {
rs.close();
stm.close();
con.close();}
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();
}
URL在类变量里定义了啊!!
感谢2楼的啊!!
晕的很 写程序老是粗心的啊