当前位置: 技术问答>java相关
关于结果集的小问题,别看小,恐怕没几个人能解决。
来源: 互联网 发布时间:2017-03-20
本文导语: 程序如下: ResultSet rst = statement.executeQuery(strsql); if (rst != null) { flag = true; } else { flag = false; } 我发现无论strsql所保存的sql语句,有无查询结果。 flag的值总是true。即:当查询没有返回任何数据时,程序仍...
程序如下:
ResultSet rst = statement.executeQuery(strsql);
if (rst != null)
{
flag = true;
}
else
{
flag = false;
}
我发现无论strsql所保存的sql语句,有无查询结果。
flag的值总是true。即:当查询没有返回任何数据时,程序仍认为rst != null成立。
怎么样?这个问题够刁钻,够奇怪吧。
ResultSet rst = statement.executeQuery(strsql);
if (rst != null)
{
flag = true;
}
else
{
flag = false;
}
我发现无论strsql所保存的sql语句,有无查询结果。
flag的值总是true。即:当查询没有返回任何数据时,程序仍认为rst != null成立。
怎么样?这个问题够刁钻,够奇怪吧。
|
唉.... 看看java api doc 再说吧
executeQuery 后, resultset 一定不是null的
要用
if (rst.next()) {
flag = true;
}else{
flag = false;
}
executeQuery 后, resultset 一定不是null的
要用
if (rst.next()) {
flag = true;
}else{
flag = false;
}
|
statement.executeQuery(strsql)返回的是ResultSet对象,没有查得符合条件的结果时,并不意味着返回的是null,此时rst并不是null,只是一个空的结果集而已,你用ResultSet rst =null;然后用
if (rst != null)
可能会正确判断,
而在查询后,判断查询有无结果时得用
if(rst.next())
来判断.
if (rst != null)
可能会正确判断,
而在查询后,判断查询有无结果时得用
if(rst.next())
来判断.