开始学习Java没有多久,自己尝试使用prepareStatement实现Java到MySQL数据库的增删改查。这里记录遇到的一些问题
先说原因
是因为 ResultSet
类型的 next
方法导致的
再轮结果
在处理之前将其加入到while
循环 调用 rs.next()
修改后的代码如下:
错误截图
java.sql.SQLException: Before start of result set
如下图
部分代码如下:
最后分析
在主逻辑中代码:
image.png在 UserDao的86行前后:
image.png查证
rs
是 ResultSet
类型, 错误应该和这个类型的使用有关。
参考官网介绍:
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()
等方法取出结果集中的数据。
网友评论