Osheep

时光不回头,当下最重要。

java.sql.SQLException: Before start of result set

开始学习Java没有多久,自己尝试使用prepareStatement实现Java到MySQL数据库的增删改查。这里记录遇到的一些问题


先说原因

是因为 ResultSet 类型的 next 方法导致的

再轮结果

在处理之前将其加入到while 循环 调用 rs.next()
修改后的代码如下:

《java.sql.SQLException: Before start of result set》

错误截图

java.sql.SQLException: Before start of result set
如下图

《java.sql.SQLException: Before start of result set》

image.png

部分代码如下:

最后分析

在主逻辑中代码:

《java.sql.SQLException: Before start of result set》

image.png

在 UserDao的86行前后:

《java.sql.SQLException: Before start of result set》

image.png

查证

rsResultSet 类型, 错误应该和这个类型的使用有关。

参考官网介绍:
http://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html

A ResultSet object maintains a cursor pointing to its current row of data. Initially the cursor is positioned before the first row. The next method moves the cursor to the next row, and because it returns false when there are no more rows in the ResultSet object, it can be used in a while loop to iterate through the result set.

可以理解它是一个指针,开始指向的是第一行前面的位置, 故我们必须先使用rs.next() 然后在采用使用rs.getString() 等方法取出结果集中的数据。

点赞