开发者社区 问答 正文

RowBounds 是一次性查询全部结果吗?为什么?

是什么原因呢?

展开
收起
杜少平123-24791 2021-10-14 19:18:47 740 分享 版权
1 条回答
写回答
取消 提交回答
  • RowBounds 表面是在“所有”数据中检索数据,其实并非是一次性查询出所有数据,因为 MyBatis 是对 jdbc 的封装,在 jdbc 驱动中有一个 Fetch Size 的配置,它规定了每次最多从数据库查询多少条数据,假如你要查询更多数据,它会在你执行 next()的时候,去查询更多的数据。就好比你去自动取款机取 10000 元,但取款机每次最多能取 2500 元,所以你要取 4 次才能把钱取完。只是对于 jdbc 来说,当你调用 next()的时候会自动帮你完成查询工作。这样做的好处可以有效的防止内存溢出。

    2021-10-14 19:19:44
    赞同 展开评论
问答地址: