关于jdbc中ResultSet的next()方法
jdbc中ResultSet的next()方法老师说是从第一条开始读取然后又回到第一条请问是这样的吗?我怀疑是老师说错了啊...
jdbc中 ResultSet的next()方法
老师说是从第一条开始读取 然后又回到第一条 请问是这样的吗?我怀疑是老师说错了啊 展开
老师说是从第一条开始读取 然后又回到第一条 请问是这样的吗?我怀疑是老师说错了啊 展开
7个回答
展开全部
既然怀疑就查资料验证呗,看 JDK API 最权威,这是JDK API 中关于 ResultSet 的 next 函数详解,一目了然:
boolean next() throws SQLException
将光标从当前位置向前移一行。ResultSet 光标最初位于第一行之前;第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。
当调用 next 方法返回 false 时,光标位于最后一行的后面。任何要求当前行的 ResultSet 方法调用将导致抛出 SQLException。如果结果集的类型是 TYPE_FORWARD_ONLY,则其 JDBC 驱动程序实现对后续 next 调用是返回 false 还是抛出 SQLException 将由供应商指定。
如果对当前行开启了输入流,则调用 next 方法将隐式关闭它。读取新行时,将清除 ResultSet 对象的警告链。
返回:
如果新的当前行有效,则返回 true;如果不存在下一行,则返回 false
抛出:
SQLException - 如果发生数据库访问错误或在关闭的结果集上调用此方法
又API知道,next()方法一开始定位在第一行前面,所以用之前你的 next() 以下(一般入门人员很容易在这里出错)才能得到第一行数据,next到最后了会定位在最后一行的后面,不会自动回到第一行的。
boolean next() throws SQLException
将光标从当前位置向前移一行。ResultSet 光标最初位于第一行之前;第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。
当调用 next 方法返回 false 时,光标位于最后一行的后面。任何要求当前行的 ResultSet 方法调用将导致抛出 SQLException。如果结果集的类型是 TYPE_FORWARD_ONLY,则其 JDBC 驱动程序实现对后续 next 调用是返回 false 还是抛出 SQLException 将由供应商指定。
如果对当前行开启了输入流,则调用 next 方法将隐式关闭它。读取新行时,将清除 ResultSet 对象的警告链。
返回:
如果新的当前行有效,则返回 true;如果不存在下一行,则返回 false
抛出:
SQLException - 如果发生数据库访问错误或在关闭的结果集上调用此方法
又API知道,next()方法一开始定位在第一行前面,所以用之前你的 next() 以下(一般入门人员很容易在这里出错)才能得到第一行数据,next到最后了会定位在最后一行的后面,不会自动回到第一行的。
展开全部
老师说的意思你没听明白,数据库取出来的记录是从0开始的,那么next()--下一条,自然取的是第一条了,当然了如果你当前指针指在了第三条上,那么next取的就是第四条了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没遇到这种问题,next()相当于指针一样,每读取一条,它就会自动向下移动,直到读取完.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
next 相当于指针 ,它的起始位置是在结果集的第一条数据之前的,而不是正指着第一条数据本身 ,循环条件下执行一次后 才指向第一条数据 ,同理 当指到最后一条数据再执行一次后 它的位置是最后一条数据的下方 不知道你老师的意思是不是这样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一次调用的时候,读取第一行;再次调用的时候,读取下一行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询