JAVA高手进~在线等~谢谢~

来源:百度知道 编辑:UC知道 时间:2024/09/20 23:23:43
最近编的一个程序~
现在卡在两个问题上~
1,是查询做的外连接~但每次查代有的空值记录时都报主函数空指针异常~
2,就是不能循环打印记录~
望高手指点下~
数据库是ACCESs
数据库名student
student(sno,sname)
sc(sno,cname,cxueqi,cgrade)
在线等~谢谢~主要的部分在下面~
//Student.java
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Student {
private String sno;
private String sname;
private String cxueqi;
private String cname;
private String cgrade;

public String getSname() {

return sname;
}

public void setSname(String sname) {

this.sname = sname;
}

public String getSno() {

return sno;
}

public void setSno(String sno) {

this.sno = sno;
}

public String getCxueqi() {

return cxueqi;
}

public void setCxueqi(String cxueqi) {

this.cxueqi = cxueqi;
}

dbc = new DataBaseConnection() ;
这个要放在异常处理块中
Student temp=new Student();
这个代码可能导致空指针异常
Student temp = null ;
temp = new Student() ;

你在定义一个变量的时候最好先将它设置成null

空指针异常是由于你声明为null,而还没有赋值就直接使用造成的.
如:
String abc = null;
String cba = abc.subString(1,3);//截取字符串
System.out.println(cba);
上面的代码明显会发生空指针异常,原因在于变量abc还没有赋值,就直接
截取1到3位置的字符,当然是不行的啊.
而发生空指针异常也是一样的问题,
至于在哪里报错,我没有认真看你的代码,
我想应该是跟你说的"外连接"有关,因为外连接返回的结果集就是会有
null的数据的,既然有null值的可能,那当然就会报错啦.
错在哪里自己可以测试出来的,
了解空指针异常出现的原因,一般都比较好解决!
如果我猜得没有错,
你的代码就错在:那几个rs.getXXX()方法,至于是哪一个或其中的几个,
要看你的数据表里的数据而定了,
自己测试一下,问题就能搞定!!
另一方法:
加一个判断表达式,就可以不出现你说的异常.
例如我刚才上面的代码可以修改如下:
String abc = null;
if(abc != null)
String cba = abc.subString(1,3);//截取字符串
else String cba = "china";
System.out.println(cba);
关键在于灵活运用,不断缩小范围测试一下,就没有问题了