在数据库里,结果集(ResultSet) 和 游标(Cursor) 经常一起出现,但不是一个东西,可以理解为:
结果集是“数据集合”,游标是“用来遍历这个结果集的机制”。
下面用通俗一点的方式解释它们的关系。
结果集是:
SELECT)后,数据库返回的数据集合例如:
SELECT id, name FROM user;
数据库返回的就是一个结果集,包含若干行数据。
游标是:
你可以:
✅ 游标依附于结果集存在
可以理解为:
结果集 = 数据
游标 = 读数据的“指针”
没有书(结果集),手指(游标)就没有意义。
ResultSet rs = stmt.executeQuery("SELECT * FROM user");
while (rs.next()) {
System.out.println(rs.getString("name"));
}
ResultSet:结果集rs.next():移动游标DECLARE
CURSOR c_user IS
SELECT id, name FROM user;
BEGIN
FOR r IN c_user LOOP
DBMS_OUTPUT.PUT_LINE(r.name);
END LOOP;
END;
CURSOR:显式游标❌ 游标就是结果集
✅ 游标是访问结果集的方式
❌ 所有结果集都有游标(对应用层来说)
✅ 底层一定有,但有些接口(如 ORM)把它隐藏了
结果集是“查出来的数据”,游标是“用来一行一行读这些数据的工具”。
如果你愿意,我也可以结合 MySQL / Oracle / PostgreSQL 或 JDBC / MyBatis 给你更具体的例子。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。