数据库结果集为空的时候加判断怎么写?rs.next() == true为什么不行呢?

2025-03-06 02:43:20
推荐回答(3个)
回答1:

首先,不能使用if (rs.next() == true)
来进行逻辑判断。
rs.next()方法每调用一次就会使结果集的游标移动一行。第一次调用,游标在第一行,第二次就会指向第二行。
你描述的情况应该是结果集只有一行数据。第一次if (rs.next() == true)
游标指向第一行,有数据,为真,进入IF。
while (rs.next())调用的时候,结果集游标已经指向第二行了,而第二行中没有数据,所以不输出。
其实你的程序执行了。
也就是说,你上面的程序在结果集有多行数据的时候能够“正常”输出,但永远都比实际结果集少一行。你的第一行数据用来进行判断了。

明白了么?

回答2:

rs.hasnext()
rs.next返回的是rs的一行记录 不是true false

回答3:

while (rs.next()) {
System.out.println("2000");
}