Nat*_*ath 29 java lazy-loading jdbc resultset
有没有办法获得从运行JDBC查询获得的ResultSet来延迟加载?我希望每行都按照我的要求加载,而不是事先加载.
Mat*_*nit 36
Statement.setFetchSize(1)在致电前使用executeQuery().
这取决于非常多的哪个JDBC驱动程序所使用.您可能需要查看此页面,该页面描述了MySQL,Oracle,SQL Server和DB2的行为.
主要外卖:
setFetchSize()没有任何警告,而其他司机需要一些"帮助".MySQL是一个特别奇怪的案例.看到这篇文章.听起来好像你打电话setFetchSize(Integer.MIN_VALUE),然后它会一次下载一行,但不是很清楚.
另一个例子:这是 PostgreSQL行为的文档.如果启用了自动提交,则ResultSet将立即获取所有行,但如果它已关闭,则可以setFetchSize()按预期使用.
最后要记住的是:这些JDBC驱动程序设置仅影响客户端发生的情况.服务器仍然可以将整个结果集加载到内存中,但您可以控制客户端下载结果的方式.
| 归档时间: |
|
| 查看次数: |
13989 次 |
| 最近记录: |