java.lang.NullPointerException 怎么老是报空指针错误

2024-12-03 22:16:00
推荐回答(3个)
回答1:

public void close(){
if(rs!=null){
rs=null;
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(stat!=null){
stat=null;
try {
stat.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} if(conn!=null){
conn=null;
try {
conn.close();
} catch (SQLException e) {

e.printStackTrace();
}
}
}

这个方法里多了下面的三行代码,
rs=null;
stat=null;
conn=null;
每次都先付空值,再CLOSE, 肯定要报错的。删掉就没事了,如下:
public void close(){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(stat!=null){
try {
stat.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {

e.printStackTrace();
}
}
}

如果想付空值的话,如下:
public void close(){
if(rs!=null){
try {
rs.close();
rs=null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(stat!=null){
try {
stat.close();
stat=null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
conn=null;
} catch (SQLException e) {
e.printStackTrace();
}
}
}

回答2:

哥们 没提示多少行 的错误码? 就是空指针错误

是不是 页面的 变量名 不一直 找不到 之类

就是这样直接看 也看不清楚啊

回答3:

给private Connection conn=null;
private Statement stat=null;
private ResultSet rs=null;
这三个变量,增加get、set方法试一试